/* Copyright (c) 2013 Dropbox, Inc.
*
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

#include <stdint.h>

static const uint32_t xref[] = {
    0,      59,     60,     61,     62,     65,     66,     67,     68,     69,     70,     71,     72,     73,
    74,     75,     76,     77,     78,     79,     80,     82,     83,     84,     85,     86,     87,     88,
    89,     90,     96,     97,     98,     99,     100,    101,    102,    103,    104,    105,    106,    107,
    108,    109,    110,    111,    112,    114,    115,    116,    117,    118,    119,    120,    121,    122,
    168,    180,    183,    192,    193,    194,    195,    196,    197,    198,    199,    200,    201,    202,
    203,    204,    205,    206,    207,    209,    210,    211,    212,    213,    214,    216,    217,    218,
    219,    220,    221,    224,    225,    226,    227,    228,    229,    230,    231,    232,    233,    234,
    235,    236,    237,    238,    239,    241,    242,    243,    244,    245,    246,    248,    249,    250,
    251,    252,    253,    255,    256,    257,    258,    259,    260,    261,    262,    263,    264,    265,
    266,    267,    268,    269,    270,    271,    274,    275,    276,    277,    278,    279,    280,    281,
    282,    283,    284,    285,    286,    287,    288,    289,    290,    291,    292,    293,    296,    297,
    298,    299,    300,    301,    302,    303,    304,    308,    309,    310,    311,    313,    314,    315,
    316,    317,    318,    323,    324,    325,    326,    327,    328,    332,    333,    334,    335,    336,
    337,    340,    341,    342,    343,    344,    345,    346,    347,    348,    349,    350,    351,    352,
    353,    354,    355,    356,    357,    360,    361,    362,    363,    364,    365,    366,    367,    368,
    369,    370,    371,    372,    373,    374,    375,    376,    377,    378,    379,    380,    381,    382,
    383,    416,    417,    431,    432,    439,    461,    462,    463,    464,    465,    466,    467,    468,
    469,    470,    471,    472,    473,    474,    475,    476,    478,    479,    480,    481,    482,    483,
    486,    487,    488,    489,    490,    491,    492,    493,    494,    495,    496,    500,    501,    504,
    505,    506,    507,    508,    509,    510,    511,    512,    513,    514,    515,    516,    517,    518,
    519,    520,    521,    522,    523,    524,    525,    526,    527,    528,    529,    530,    531,    532,
    533,    534,    535,    536,    537,    538,    539,    542,    543,    550,    551,    552,    553,    554,
    555,    556,    557,    558,    559,    560,    561,    562,    563,    658,    697,    768,    769,    770,
    771,    772,    774,    775,    776,    777,    778,    779,    780,    783,    785,    787,    788,    795,
    803,    804,    805,    806,    807,    808,    813,    814,    816,    817,    824,    832,    833,    834,
    835,    836,    837,    884,    894,    901,    902,    903,    904,    905,    906,    908,    910,    911,
    912,    913,    917,    919,    921,    927,    929,    933,    937,    938,    939,    940,    941,    942,
    943,    944,    945,    949,    951,    953,    959,    961,    965,    969,    970,    971,    972,    973,
    974,    978,    979,    980,    1024,   1025,   1027,   1030,   1031,   1036,   1037,   1038,   1040,   1043,
    1045,   1046,   1047,   1048,   1049,   1050,   1054,   1059,   1063,   1067,   1069,   1072,   1075,   1077,
    1078,   1079,   1080,   1081,   1082,   1086,   1091,   1095,   1099,   1101,   1104,   1105,   1107,   1110,
    1111,   1116,   1117,   1118,   1140,   1141,   1142,   1143,   1217,   1218,   1232,   1233,   1234,   1235,
    1238,   1239,   1240,   1241,   1242,   1243,   1244,   1245,   1246,   1247,   1250,   1251,   1252,   1253,
    1254,   1255,   1256,   1257,   1258,   1259,   1260,   1261,   1262,   1263,   1264,   1265,   1266,   1267,
    1268,   1269,   1272,   1273,   1460,   1463,   1464,   1465,   1468,   1471,   1473,   1474,   1488,   1489,
    1490,   1491,   1492,   1493,   1494,   1496,   1497,   1498,   1499,   1500,   1502,   1504,   1505,   1507,
    1508,   1510,   1511,   1512,   1513,   1514,   1522,   1570,   1571,   1572,   1573,   1574,   1575,   1608,
    1610,   1619,   1620,   1621,   1728,   1729,   1730,   1746,   1747,   1749,   2325,   2326,   2327,   2332,
    2337,   2338,   2344,   2345,   2347,   2351,   2352,   2353,   2355,   2356,   2364,   2392,   2393,   2394,
    2395,   2396,   2397,   2398,   2399,   2465,   2466,   2479,   2492,   2494,   2503,   2507,   2508,   2519,
    2524,   2525,   2527,   2582,   2583,   2588,   2603,   2610,   2611,   2614,   2616,   2620,   2649,   2650,
    2651,   2654,   2849,   2850,   2876,   2878,   2887,   2888,   2891,   2892,   2902,   2903,   2908,   2909,
    2962,   2964,   3006,   3014,   3015,   3018,   3019,   3020,   3031,   3142,   3144,   3158,   3263,   3264,
    3266,   3270,   3271,   3272,   3274,   3275,   3285,   3286,   3390,   3398,   3399,   3402,   3403,   3404,
    3415,   3530,   3535,   3545,   3546,   3548,   3549,   3550,   3551,   3904,   3906,   3907,   3916,   3917,
    3921,   3922,   3926,   3927,   3931,   3932,   3945,   3953,   3954,   3955,   3956,   3957,   3958,   3960,
    3968,   3969,   3984,   3986,   3987,   3996,   3997,   4001,   4002,   4006,   4007,   4011,   4012,   4018,
    4019,   4021,   4023,   4025,   4133,   4134,   4142,   6917,   6918,   6919,   6920,   6921,   6922,   6923,
    6924,   6925,   6926,   6929,   6930,   6965,   6970,   6971,   6972,   6973,   6974,   6975,   6976,   6977,
    6978,   6979,   7680,   7681,   7682,   7683,   7684,   7685,   7686,   7687,   7688,   7689,   7690,   7691,
    7692,   7693,   7694,   7695,   7696,   7697,   7698,   7699,   7700,   7701,   7702,   7703,   7704,   7705,
    7706,   7707,   7708,   7709,   7710,   7711,   7712,   7713,   7714,   7715,   7716,   7717,   7718,   7719,
    7720,   7721,   7722,   7723,   7724,   7725,   7726,   7727,   7728,   7729,   7730,   7731,   7732,   7733,
    7734,   7735,   7736,   7737,   7738,   7739,   7740,   7741,   7742,   7743,   7744,   7745,   7746,   7747,
    7748,   7749,   7750,   7751,   7752,   7753,   7754,   7755,   7756,   7757,   7758,   7759,   7760,   7761,
    7762,   7763,   7764,   7765,   7766,   7767,   7768,   7769,   7770,   7771,   7772,   7773,   7774,   7775,
    7776,   7777,   7778,   7779,   7780,   7781,   7782,   7783,   7784,   7785,   7786,   7787,   7788,   7789,
    7790,   7791,   7792,   7793,   7794,   7795,   7796,   7797,   7798,   7799,   7800,   7801,   7802,   7803,
    7804,   7805,   7806,   7807,   7808,   7809,   7810,   7811,   7812,   7813,   7814,   7815,   7816,   7817,
    7818,   7819,   7820,   7821,   7822,   7823,   7824,   7825,   7826,   7827,   7828,   7829,   7830,   7831,
    7832,   7833,   7835,   7840,   7841,   7842,   7843,   7844,   7845,   7846,   7847,   7848,   7849,   7850,
    7851,   7852,   7853,   7854,   7855,   7856,   7857,   7858,   7859,   7860,   7861,   7862,   7863,   7864,
    7865,   7866,   7867,   7868,   7869,   7870,   7871,   7872,   7873,   7874,   7875,   7876,   7877,   7878,
    7879,   7880,   7881,   7882,   7883,   7884,   7885,   7886,   7887,   7888,   7889,   7890,   7891,   7892,
    7893,   7894,   7895,   7896,   7897,   7898,   7899,   7900,   7901,   7902,   7903,   7904,   7905,   7906,
    7907,   7908,   7909,   7910,   7911,   7912,   7913,   7914,   7915,   7916,   7917,   7918,   7919,   7920,
    7921,   7922,   7923,   7924,   7925,   7926,   7927,   7928,   7929,   7936,   7937,   7938,   7939,   7940,
    7941,   7942,   7943,   7944,   7945,   7946,   7947,   7948,   7949,   7950,   7951,   7952,   7953,   7954,
    7955,   7956,   7957,   7960,   7961,   7962,   7963,   7964,   7965,   7968,   7969,   7970,   7971,   7972,
    7973,   7974,   7975,   7976,   7977,   7978,   7979,   7980,   7981,   7982,   7983,   7984,   7985,   7986,
    7987,   7988,   7989,   7990,   7991,   7992,   7993,   7994,   7995,   7996,   7997,   7998,   7999,   8000,
    8001,   8002,   8003,   8004,   8005,   8008,   8009,   8010,   8011,   8012,   8013,   8016,   8017,   8018,
    8019,   8020,   8021,   8022,   8023,   8025,   8027,   8029,   8031,   8032,   8033,   8034,   8035,   8036,
    8037,   8038,   8039,   8040,   8041,   8042,   8043,   8044,   8045,   8046,   8047,   8048,   8049,   8050,
    8051,   8052,   8053,   8054,   8055,   8056,   8057,   8058,   8059,   8060,   8061,   8064,   8065,   8066,
    8067,   8068,   8069,   8070,   8071,   8072,   8073,   8074,   8075,   8076,   8077,   8078,   8079,   8080,
    8081,   8082,   8083,   8084,   8085,   8086,   8087,   8088,   8089,   8090,   8091,   8092,   8093,   8094,
    8095,   8096,   8097,   8098,   8099,   8100,   8101,   8102,   8103,   8104,   8105,   8106,   8107,   8108,
    8109,   8110,   8111,   8112,   8113,   8114,   8115,   8116,   8118,   8119,   8120,   8121,   8122,   8123,
    8124,   8126,   8127,   8129,   8130,   8131,   8132,   8134,   8135,   8136,   8137,   8138,   8139,   8140,
    8141,   8142,   8143,   8144,   8145,   8146,   8147,   8150,   8151,   8152,   8153,   8154,   8155,   8157,
    8158,   8159,   8160,   8161,   8162,   8163,   8164,   8165,   8166,   8167,   8168,   8169,   8170,   8171,
    8172,   8173,   8174,   8175,   8178,   8179,   8180,   8182,   8183,   8184,   8185,   8186,   8187,   8188,
    8189,   8190,   8192,   8193,   8194,   8195,   8486,   8490,   8491,   8592,   8594,   8596,   8602,   8603,
    8622,   8653,   8654,   8655,   8656,   8658,   8660,   8707,   8708,   8712,   8713,   8715,   8716,   8739,
    8740,   8741,   8742,   8764,   8769,   8771,   8772,   8773,   8775,   8776,   8777,   8781,   8800,   8801,
    8802,   8804,   8805,   8813,   8814,   8815,   8816,   8817,   8818,   8819,   8820,   8821,   8822,   8823,
    8824,   8825,   8826,   8827,   8828,   8829,   8832,   8833,   8834,   8835,   8836,   8837,   8838,   8839,
    8840,   8841,   8849,   8850,   8866,   8872,   8873,   8875,   8876,   8877,   8878,   8879,   8882,   8883,
    8884,   8885,   8928,   8929,   8930,   8931,   8938,   8939,   8940,   8941,   9001,   9002,   10972,  10973,
    12296,  12297,  12358,  12363,  12364,  12365,  12366,  12367,  12368,  12369,  12370,  12371,  12372,  12373,
    12374,  12375,  12376,  12377,  12378,  12379,  12380,  12381,  12382,  12383,  12384,  12385,  12386,  12388,
    12389,  12390,  12391,  12392,  12393,  12399,  12400,  12401,  12402,  12403,  12404,  12405,  12406,  12407,
    12408,  12409,  12410,  12411,  12412,  12413,  12436,  12441,  12442,  12445,  12446,  12454,  12459,  12460,
    12461,  12462,  12463,  12464,  12465,  12466,  12467,  12468,  12469,  12470,  12471,  12472,  12473,  12474,
    12475,  12476,  12477,  12478,  12479,  12480,  12481,  12482,  12484,  12485,  12486,  12487,  12488,  12489,
    12495,  12496,  12497,  12498,  12499,  12500,  12501,  12502,  12503,  12504,  12505,  12506,  12507,  12508,
    12509,  12527,  12528,  12529,  12530,  12532,  12535,  12536,  12537,  12538,  12541,  12542,  13470,  13497,
    13499,  13535,  13589,  14062,  14076,  14209,  14383,  14434,  14460,  14535,  14563,  14620,  14650,  14894,
    14956,  15076,  15112,  15129,  15177,  15261,  15384,  15438,  15667,  15766,  16044,  16056,  16155,  16380,
    16392,  16408,  16441,  16454,  16534,  16611,  16687,  16898,  16935,  17056,  17153,  17204,  17241,  17365,
    17369,  17419,  17515,  17707,  17757,  17761,  17771,  17879,  17913,  17973,  18110,  18119,  18837,  18918,
    19054,  19062,  19122,  19251,  19406,  19662,  19693,  19704,  19798,  19981,  20006,  20018,  20024,  20025,
    20029,  20033,  20098,  20102,  20142,  20160,  20172,  20196,  20320,  20352,  20358,  20363,  20398,  20411,
    20415,  20482,  20523,  20602,  20633,  20687,  20698,  20711,  20800,  20805,  20813,  20820,  20836,  20839,
    20840,  20841,  20845,  20855,  20864,  20877,  20882,  20885,  20887,  20900,  20908,  20917,  20919,  20937,
    20940,  20956,  20958,  20981,  20995,  20999,  21015,  21033,  21050,  21051,  21062,  21106,  21111,  21129,
    21147,  21155,  21171,  21191,  21193,  21202,  21214,  21220,  21237,  21242,  21253,  21254,  21271,  21311,
    21321,  21329,  21338,  21363,  21365,  21373,  21375,  21443,  21450,  21471,  21477,  21483,  21489,  21510,
    21519,  21533,  21560,  21570,  21576,  21608,  21662,  21666,  21693,  21750,  21776,  21843,  21845,  21859,
    21892,  21895,  21913,  21917,  21931,  21939,  21952,  21954,  21986,  22022,  22097,  22120,  22132,  22265,
    22294,  22295,  22411,  22478,  22516,  22541,  22577,  22578,  22592,  22618,  22622,  22696,  22700,  22707,
    22744,  22751,  22766,  22770,  22775,  22790,  22810,  22818,  22852,  22856,  22865,  22868,  22882,  22899,
    23000,  23020,  23067,  23079,  23138,  23142,  23221,  23304,  23336,  23358,  23429,  23491,  23512,  23527,
    23534,  23539,  23551,  23558,  23586,  23615,  23648,  23650,  23652,  23653,  23662,  23693,  23744,  23833,
    23875,  23888,  23915,  23918,  23932,  23986,  23994,  24033,  24034,  24061,  24104,  24125,  24169,  24180,
    24230,  24240,  24243,  24246,  24265,  24266,  24274,  24275,  24281,  24300,  24318,  24324,  24354,  24403,
    24418,  24425,  24427,  24459,  24474,  24489,  24493,  24525,  24535,  24565,  24569,  24594,  24604,  24693,
    24705,  24724,  24775,  24792,  24801,  24840,  24900,  24904,  24908,  24910,  24928,  24936,  24954,  24974,
    24976,  24996,  25007,  25010,  25054,  25074,  25078,  25088,  25104,  25115,  25134,  25140,  25181,  25265,
    25289,  25295,  25299,  25300,  25340,  25342,  25405,  25424,  25448,  25467,  25475,  25504,  25513,  25540,
    25541,  25572,  25628,  25634,  25682,  25705,  25719,  25726,  25754,  25757,  25796,  25935,  25942,  25964,
    25976,  26009,  26053,  26082,  26083,  26131,  26185,  26228,  26248,  26257,  26268,  26292,  26310,  26356,
    26360,  26368,  26391,  26395,  26401,  26446,  26451,  26454,  26462,  26491,  26501,  26519,  26611,  26618,
    26647,  26655,  26706,  26753,  26757,  26766,  26792,  26900,  26946,  27043,  27114,  27138,  27155,  27304,
    27347,  27355,  27396,  27425,  27476,  27506,  27511,  27513,  27551,  27566,  27578,  27579,  27726,  27751,
    27784,  27839,  27852,  27853,  27877,  27926,  27931,  27934,  27956,  27966,  27969,  28009,  28010,  28023,
    28024,  28037,  28107,  28122,  28138,  28153,  28186,  28207,  28270,  28316,  28346,  28359,  28363,  28369,
    28379,  28431,  28450,  28451,  28526,  28614,  28651,  28670,  28699,  28702,  28729,  28746,  28784,  28791,
    28797,  28825,  28845,  28872,  28889,  28997,  29001,  29038,  29084,  29134,  29136,  29200,  29211,  29224,
    29227,  29237,  29264,  29282,  29312,  29333,  29359,  29376,  29436,  29482,  29557,  29562,  29575,  29579,
    29605,  29618,  29662,  29702,  29705,  29730,  29767,  29788,  29801,  29809,  29829,  29833,  29848,  29898,
    29958,  29988,  30011,  30014,  30041,  30053,  30064,  30178,  30224,  30237,  30239,  30274,  30313,  30410,
    30427,  30439,  30452,  30465,  30494,  30495,  30528,  30538,  30603,  30631,  30798,  30827,  30860,  30865,
    30922,  30924,  30971,  31018,  31036,  31038,  31048,  31049,  31056,  31062,  31069,  31070,  31077,  31103,
    31117,  31118,  31119,  31150,  31178,  31211,  31260,  31296,  31306,  31311,  31361,  31409,  31435,  31470,
    31520,  31680,  31686,  31689,  31806,  31840,  31867,  31890,  31934,  31954,  31958,  31971,  31975,  31976,
    32000,  32016,  32034,  32047,  32091,  32099,  32160,  32190,  32199,  32244,  32258,  32265,  32311,  32321,
    32325,  32574,  32626,  32633,  32634,  32645,  32661,  32666,  32701,  32762,  32769,  32773,  32838,  32864,
    32879,  32880,  32894,  32907,  32941,  32946,  33027,  33086,  33240,  33256,  33261,  33281,  33284,  33304,
    33391,  33401,  33419,  33425,  33437,  33457,  33459,  33469,  33509,  33510,  33565,  33571,  33590,  33618,
    33619,  33635,  33709,  33725,  33737,  33738,  33740,  33756,  33767,  33775,  33777,  33853,  33865,  33879,
    34030,  34033,  34035,  34044,  34070,  34148,  34253,  34298,  34310,  34322,  34349,  34367,  34384,  34396,
    34407,  34409,  34440,  34473,  34530,  34574,  34600,  34667,  34681,  34694,  34746,  34785,  34817,  34847,
    34892,  34912,  34915,  35010,  35023,  35031,  35038,  35041,  35064,  35066,  35088,  35137,  35172,  35206,
    35211,  35222,  35488,  35498,  35519,  35531,  35538,  35542,  35565,  35576,  35582,  35585,  35641,  35672,
    35712,  35722,  35912,  35925,  36011,  36033,  36034,  36040,  36051,  36104,  36123,  36215,  36284,  36299,
    36335,  36336,  36554,  36564,  36646,  36650,  36664,  36667,  36706,  36766,  36784,  36790,  36899,  36920,
    36978,  36988,  37007,  37012,  37070,  37086,  37105,  37117,  37137,  37147,  37226,  37273,  37300,  37324,
    37327,  37329,  37428,  37432,  37494,  37500,  37591,  37592,  37636,  37706,  37881,  37909,  38283,  38317,
    38327,  38446,  38475,  38477,  38517,  38520,  38524,  38534,  38563,  38583,  38584,  38595,  38626,  38627,
    38646,  38647,  38691,  38706,  38728,  38742,  38875,  38880,  38911,  38923,  38936,  38953,  38971,  39006,
    39138,  39151,  39164,  39208,  39209,  39335,  39362,  39409,  39422,  39530,  39698,  39791,  40000,  40023,
    40189,  40295,  40372,  40442,  40478,  40575,  40599,  40607,  40635,  40654,  40697,  40702,  40709,  40719,
    40726,  40763,  40771,  40845,  40846,  40860,  63744,  63745,  63746,  63747,  63748,  63749,  63750,  63751,
    63752,  63753,  63754,  63755,  63756,  63757,  63758,  63759,  63760,  63761,  63762,  63763,  63764,  63765,
    63766,  63767,  63768,  63769,  63770,  63771,  63772,  63773,  63774,  63775,  63776,  63777,  63778,  63779,
    63780,  63781,  63782,  63783,  63784,  63785,  63786,  63787,  63788,  63789,  63790,  63791,  63792,  63793,
    63794,  63795,  63796,  63797,  63798,  63799,  63800,  63801,  63802,  63803,  63804,  63805,  63806,  63807,
    63808,  63809,  63810,  63811,  63812,  63813,  63814,  63815,  63816,  63817,  63818,  63819,  63820,  63821,
    63822,  63823,  63824,  63825,  63826,  63827,  63828,  63829,  63830,  63831,  63832,  63833,  63834,  63835,
    63836,  63837,  63838,  63839,  63840,  63841,  63842,  63843,  63844,  63845,  63846,  63847,  63848,  63849,
    63850,  63851,  63852,  63853,  63854,  63855,  63856,  63857,  63858,  63859,  63860,  63861,  63862,  63863,
    63864,  63865,  63866,  63867,  63868,  63869,  63870,  63871,  63872,  63873,  63874,  63875,  63876,  63877,
    63878,  63879,  63880,  63881,  63882,  63883,  63884,  63885,  63886,  63887,  63888,  63889,  63890,  63891,
    63892,  63893,  63894,  63895,  63896,  63897,  63898,  63899,  63900,  63901,  63902,  63903,  63904,  63905,
    63906,  63907,  63908,  63909,  63910,  63911,  63912,  63913,  63914,  63915,  63916,  63917,  63918,  63919,
    63920,  63921,  63922,  63923,  63924,  63925,  63926,  63927,  63928,  63929,  63930,  63931,  63932,  63933,
    63934,  63935,  63936,  63937,  63938,  63939,  63940,  63941,  63942,  63943,  63944,  63945,  63946,  63947,
    63948,  63949,  63950,  63951,  63952,  63953,  63954,  63955,  63956,  63957,  63958,  63959,  63960,  63961,
    63962,  63963,  63964,  63965,  63966,  63967,  63968,  63969,  63970,  63971,  63972,  63973,  63974,  63975,
    63976,  63977,  63978,  63979,  63980,  63981,  63982,  63983,  63984,  63985,  63986,  63987,  63988,  63989,
    63990,  63991,  63992,  63993,  63994,  63995,  63996,  63997,  63998,  63999,  64000,  64001,  64002,  64003,
    64004,  64005,  64006,  64007,  64008,  64009,  64010,  64011,  64012,  64013,  64016,  64018,  64021,  64022,
    64023,  64024,  64025,  64026,  64027,  64028,  64029,  64030,  64032,  64034,  64037,  64038,  64042,  64043,
    64044,  64045,  64046,  64047,  64048,  64049,  64050,  64051,  64052,  64053,  64054,  64055,  64056,  64057,
    64058,  64059,  64060,  64061,  64062,  64063,  64064,  64065,  64066,  64067,  64068,  64069,  64070,  64071,
    64072,  64073,  64074,  64075,  64076,  64077,  64078,  64079,  64080,  64081,  64082,  64083,  64084,  64085,
    64086,  64087,  64088,  64089,  64090,  64091,  64092,  64093,  64094,  64095,  64096,  64097,  64098,  64099,
    64100,  64101,  64102,  64103,  64104,  64105,  64106,  64107,  64108,  64109,  64112,  64113,  64114,  64115,
    64116,  64117,  64118,  64119,  64120,  64121,  64122,  64123,  64124,  64125,  64126,  64127,  64128,  64129,
    64130,  64131,  64132,  64133,  64134,  64135,  64136,  64137,  64138,  64139,  64140,  64141,  64142,  64143,
    64144,  64145,  64146,  64147,  64148,  64149,  64150,  64151,  64152,  64153,  64154,  64155,  64156,  64157,
    64158,  64159,  64160,  64161,  64162,  64163,  64164,  64165,  64166,  64167,  64168,  64169,  64170,  64171,
    64172,  64173,  64174,  64175,  64176,  64177,  64178,  64179,  64180,  64181,  64182,  64183,  64184,  64185,
    64186,  64187,  64188,  64189,  64190,  64191,  64192,  64193,  64194,  64195,  64196,  64197,  64198,  64199,
    64200,  64201,  64202,  64203,  64204,  64205,  64206,  64207,  64208,  64209,  64210,  64211,  64212,  64213,
    64214,  64215,  64216,  64217,  64285,  64287,  64298,  64299,  64300,  64301,  64302,  64303,  64304,  64305,
    64306,  64307,  64308,  64309,  64310,  64312,  64313,  64314,  64315,  64316,  64318,  64320,  64321,  64323,
    64324,  64326,  64327,  64328,  64329,  64330,  64331,  64332,  64333,  64334,  69785,  69786,  69787,  69788,
    69797,  69803,  69818,  69927,  69934,  69935,  69937,  69938,  119127, 119128, 119134, 119135, 119136, 119137,
    119138, 119139, 119140, 119141, 119150, 119151, 119152, 119153, 119154, 119225, 119226, 119227, 119228, 119229,
    119230, 119231, 119232, 131362, 132380, 132389, 132427, 132666, 133124, 133342, 133676, 133987, 136420, 136872,
    136938, 137672, 138008, 138507, 138724, 138726, 139651, 139679, 140081, 141012, 141380, 141386, 142092, 142321,
    143370, 144056, 144223, 144275, 144284, 144323, 144341, 144493, 145059, 145575, 146061, 146170, 146620, 146718,
    147153, 147294, 147342, 148067, 148206, 148395, 149000, 149301, 149524, 150582, 150674, 151457, 151480, 151620,
    151794, 151795, 151833, 151859, 152137, 152605, 153126, 153242, 153285, 153980, 154279, 154539, 154752, 154832,
    155526, 156122, 156200, 156231, 156377, 156478, 156890, 156963, 157096, 157607, 157621, 158524, 158774, 158933,
    159083, 159532, 159665, 159954, 160714, 161383, 161966, 162150, 162984, 163539, 163631, 165330, 165357, 165678,
    166906, 167287, 168261, 168415, 168474, 168970, 169110, 169398, 170800, 172238, 172293, 172558, 172689, 172946,
    173568, 194560, 194561, 194562, 194563, 194564, 194565, 194566, 194567, 194568, 194569, 194570, 194571, 194572,
    194573, 194574, 194575, 194576, 194577, 194578, 194579, 194580, 194581, 194582, 194583, 194584, 194585, 194586,
    194587, 194588, 194589, 194590, 194591, 194592, 194593, 194594, 194595, 194596, 194597, 194598, 194599, 194600,
    194601, 194602, 194603, 194604, 194605, 194606, 194607, 194608, 194609, 194610, 194611, 194612, 194613, 194614,
    194615, 194616, 194617, 194618, 194619, 194620, 194621, 194622, 194623, 194624, 194625, 194626, 194627, 194628,
    194629, 194630, 194631, 194632, 194633, 194634, 194635, 194636, 194637, 194638, 194639, 194640, 194641, 194642,
    194643, 194644, 194645, 194646, 194647, 194648, 194649, 194650, 194651, 194652, 194653, 194654, 194655, 194656,
    194657, 194658, 194659, 194660, 194661, 194662, 194663, 194664, 194665, 194666, 194667, 194668, 194669, 194670,
    194671, 194672, 194673, 194674, 194675, 194676, 194677, 194678, 194679, 194680, 194681, 194682, 194683, 194684,
    194685, 194686, 194687, 194688, 194689, 194690, 194691, 194692, 194693, 194694, 194695, 194696, 194697, 194698,
    194699, 194700, 194701, 194702, 194703, 194704, 194705, 194706, 194707, 194708, 194709, 194710, 194711, 194712,
    194713, 194714, 194715, 194716, 194717, 194718, 194719, 194720, 194721, 194722, 194723, 194724, 194725, 194726,
    194727, 194728, 194729, 194730, 194731, 194732, 194733, 194734, 194735, 194736, 194737, 194738, 194739, 194740,
    194741, 194742, 194743, 194744, 194745, 194746, 194747, 194748, 194749, 194750, 194751, 194752, 194753, 194754,
    194755, 194756, 194757, 194758, 194759, 194760, 194761, 194762, 194763, 194764, 194765, 194766, 194767, 194768,
    194769, 194770, 194771, 194772, 194773, 194774, 194775, 194776, 194777, 194778, 194779, 194780, 194781, 194782,
    194783, 194784, 194785, 194786, 194787, 194788, 194789, 194790, 194791, 194792, 194793, 194794, 194795, 194796,
    194797, 194798, 194799, 194800, 194801, 194802, 194803, 194804, 194805, 194806, 194807, 194808, 194809, 194810,
    194811, 194812, 194813, 194814, 194815, 194816, 194817, 194818, 194819, 194820, 194821, 194822, 194823, 194824,
    194825, 194826, 194827, 194828, 194829, 194830, 194831, 194832, 194833, 194834, 194835, 194836, 194837, 194838,
    194839, 194840, 194841, 194842, 194843, 194844, 194845, 194846, 194847, 194848, 194849, 194850, 194851, 194852,
    194853, 194854, 194855, 194856, 194857, 194858, 194859, 194860, 194861, 194862, 194863, 194864, 194865, 194866,
    194867, 194868, 194869, 194870, 194871, 194872, 194873, 194874, 194875, 194876, 194877, 194878, 194879, 194880,
    194881, 194882, 194883, 194884, 194885, 194886, 194887, 194888, 194889, 194890, 194891, 194892, 194893, 194894,
    194895, 194896, 194897, 194898, 194899, 194900, 194901, 194902, 194903, 194904, 194905, 194906, 194907, 194908,
    194909, 194910, 194911, 194912, 194913, 194914, 194915, 194916, 194917, 194918, 194919, 194920, 194921, 194922,
    194923, 194924, 194925, 194926, 194927, 194928, 194929, 194930, 194931, 194932, 194933, 194934, 194935, 194936,
    194937, 194938, 194939, 194940, 194941, 194942, 194943, 194944, 194945, 194946, 194947, 194948, 194949, 194950,
    194951, 194952, 194953, 194954, 194955, 194956, 194957, 194958, 194959, 194960, 194961, 194962, 194963, 194964,
    194965, 194966, 194967, 194968, 194969, 194970, 194971, 194972, 194973, 194974, 194975, 194976, 194977, 194978,
    194979, 194980, 194981, 194982, 194983, 194984, 194985, 194986, 194987, 194988, 194989, 194990, 194991, 194992,
    194993, 194994, 194995, 194996, 194997, 194998, 194999, 195000, 195001, 195002, 195003, 195004, 195005, 195006,
    195007, 195008, 195009, 195010, 195011, 195012, 195013, 195014, 195015, 195016, 195017, 195018, 195019, 195020,
    195021, 195022, 195023, 195024, 195025, 195026, 195027, 195028, 195029, 195030, 195031, 195032, 195033, 195034,
    195035, 195036, 195037, 195038, 195039, 195040, 195041, 195042, 195043, 195044, 195045, 195046, 195047, 195048,
    195049, 195050, 195051, 195052, 195053, 195054, 195055, 195056, 195057, 195058, 195059, 195060, 195061, 195062,
    195063, 195064, 195065, 195066, 195067, 195068, 195069, 195070, 195071, 195072, 195073, 195074, 195075, 195076,
    195077, 195078, 195079, 195080, 195081, 195082, 195083, 195084, 195085, 195086, 195087, 195088, 195089, 195090,
    195091, 195092, 195093, 195094, 195095, 195096, 195097, 195098, 195099, 195100, 195101};

static const uint16_t comp_seq[] = {
    33432, 663,  33114, 1208, 33114, 1202, 33114, 1209, 319,   59,   322,   62,   330,   230,  331,   273,  325,   303,
    341,   120,  332,   275,  327,   845,  324,   118,  338,   688,  321,   61,   336,   843,  326,   63,   320,   60,
    323,   116,  33096, 64,   345,   694,  325,   690,  33104, 692,  330,   128,  320,   122,  340,   66,   325,   126,
    33089, 124,  330,   130,  340,   704,  325,   698,  342,   706,  345,   702,  33104, 700,  336,   867,  341,   138,
    332,   279,  342,   712,  330,   140,  326,   70,   321,   69,   324,   134,  322,   871,  344,   714,  323,   132,
    331,   277,  325,   136,  319,   67,   340,   305,  320,   68,   33095, 869,  34077, 1308, 321,   142,  330,   252,
    324,   144,  320,   263,  340,   148,  323,   720,  33093, 146,  336,   724,  330,   301,  326,   726,  340,   728,
    321,   150,  325,   722,  33111, 730,  330,   232,  323,   154,  332,   283,  320,   72,   327,   883,  336,   885,
    319,   71,   322,   152,  331,   281,  324,   156,  321,   73,   325,   160,  326,   74,   344,   732,  33109, 158,
    33089, 161,  336,   738,  320,   736,  345,   740,  330,   254,  33108, 163,  336,   742,  340,   167,  345,   746,
    342,   748,  330,   169,  33088, 165,  34077, 1266, 320,   171,  330,   175,  319,   265,  325,   756,  340,   173,
    336,   758,  322,   75,   342,   762,  33113, 760,  335,   225,  325,   311,  327,   889,  331,   285,  326,   80,
    323,   177,  321,   78,   341,   256,  319,   76,   320,   77,   330,   234,  336,   887,  322,   79,   332,   287,
    324,   179,  33097, 181,  320,   772,  33093, 774,  34077, 1270, 345,   782,  325,   776,  330,   187,  340,   185,
    331,   289,  336,   778,  320,   183,  33100, 291,  325,   784,  321,   191,  330,   195,  320,   189,  340,   193,
    339,   297,  33104, 786,  342,   800,  330,   199,  325,   794,  339,   299,  345,   798,  340,   197,  33104, 796,
    323,   203,  320,   83,   337,   802,  344,   804,  329,   209,  330,   236,  322,   201,  331,   293,  321,   84,
    328,   207,  332,   295,  341,   211,  326,   85,   335,   227,  324,   205,  319,   82,   336,   911,  327,   913,
    33110, 806,  336,   814,  33090, 812,  319,   816,  325,   822,  321,   213,  336,   824,  326,   820,  33088, 818,
    326,   828,  33093, 826,  325,   830,  326,   217,  327,   929,  336,   927,  319,   925,  321,   215,  323,   315,
    320,   86,   33090, 931,  320,   218,  325,   220,  345,   836,  336,   834,  330,   222,  33089, 832,  34077, 1280,
    34077, 1282, 34077, 1284, 327,   846,  330,   231,  323,   117,  336,   844,  325,   304,  331,   274,  324,   119,
    319,   87,   332,   276,  321,   89,   338,   689,  326,   91,   341,   121,  320,   88,   322,   90,   33096, 92,
    336,   693,  345,   695,  33093, 691,  325,   127,  340,   94,   321,   125,  320,   123,  33098, 129,  336,   701,
    342,   707,  340,   705,  325,   699,  345,   703,  33098, 131,  336,   868,  323,   133,  330,   141,  332,   280,
    342,   713,  326,   98,   324,   135,  321,   97,   319,   95,   344,   715,  327,   870,  320,   96,   322,   872,
    331,   278,  325,   137,  340,   306,  33109, 139,  34077, 1290, 321,   143,  325,   147,  330,   253,  324,   145,
    340,   149,  323,   721,  33088, 264,  325,   723,  330,   302,  345,   838,  326,   727,  321,   151,  340,   729,
    336,   725,  33111, 731,  331,   282,  320,   100,  332,   284,  327,   884,  336,   886,  322,   153,  326,   102,
    324,   157,  330,   233,  341,   159,  319,   99,   344,   733,  323,   155,  33089, 101,  330,   262,  33089, 162,
    345,   741,  330,   255,  320,   737,  340,   164,  33104, 739,  336,   743,  330,   170,  340,   168,  345,   747,
    342,   749,  33088, 166,  336,   755,  325,   753,  33088, 751,  345,   761,  319,   266,  340,   174,  320,   172,
    325,   757,  336,   759,  342,   763,  330,   176,  33090, 103,  330,   235,  321,   106,  336,   888,  326,   108,
    341,   257,  327,   890,  325,   312,  319,   104,  322,   107,  323,   178,  331,   286,  320,   105,  329,   182,
    324,   180,  332,   288,  33103, 226,  325,   775,  33088, 773,  1310,  1298, 34077, 1297, 330,   196,  336,   787,
    325,   785,  320,   190,  339,   298,  340,   194,  33089, 192,  326,   839,  336,   797,  330,   200,  342,   801,
    339,   300,  325,   795,  345,   799,  33108, 198,  335,   228,  329,   210,  320,   111,  337,   803,  319,   110,
    331,   294,  326,   113,  342,   807,  341,   212,  322,   202,  344,   805,  324,   206,  332,   296,  330,   237,
    327,   914,  321,   112,  323,   204,  336,   912,  33096, 208,  322,   813,  33104, 815,  320,   819,  321,   214,
    325,   823,  328,   840,  336,   825,  326,   821,  33087, 817,  1310,  1304, 34077, 1303, 325,   831,  323,   316,
    319,   926,  326,   115,  336,   928,  321,   216,  328,   841,  320,   114,  327,   930,  33090, 932,  345,   837,
    336,   835,  325,   221,  321,   833,  330,   223,  33088, 219,  1309,  1306, 34078, 1307, 35430, 2657, 35430, 2659,
    34077, 1312, 35430, 2661, 34077, 1363, 319,   1149, 349,   1109, 33088, 355,  34077, 1315, 34077, 1317, 34077, 1319,
    34077, 1321, 34077, 1323, 34077, 1325, 34077, 1327, 34077, 1329, 34077, 1331, 34077, 1333, 34077, 1335, 34077, 1337,
    327,   851,  322,   853,  320,   847,  33087, 849,  33091, 246,  33088, 267,  34077, 1341, 33088, 696,  34077, 1343,
    322,   879,  319,   875,  320,   873,  33095, 877,  1310,  1346, 34077, 1345, 1310,  1349, 34077, 1348, 327,   895,
    322,   897,  319,   893,  33088, 891,  1309,  1351, 34078, 1352, 33091, 307,  1310,  1355, 34077, 1354, 1309,  1357,
    34078, 1358, 319,   244,  330,   242,  320,   240,  33091, 238,  327,   852,  319,   850,  322,   854,  33088, 848,
    33091, 247,  33088, 268,  323,   251,  33088, 270,  33088, 697,  320,   874,  327,   878,  322,   880,  33087, 876,
    33088, 735,  34077, 1365, 34077, 1366, 34077, 1367, 319,   894,  320,   892,  322,   898,  33095, 896,  320,   765,
    326,   767,  33091, 310,  33091, 308,  33088, 272,  320,   241,  323,   239,  319,   245,  33098, 243,  34077, 1369,
    320,   857,  319,   859,  322,   863,  33095, 861,  320,   858,  327,   862,  322,   864,  33087, 860,  319,   708,
    33088, 710,  320,   711,  33087, 709,  33310, 535,  33310, 539,  35431, 2664, 35431, 2665, 33310, 541,  319,   768,
    33088, 770,  320,   771,  33087, 769,  33093, 788,  33093, 789,  33093, 790,  33093, 791,  33088, 808,  33088, 809,
    33094, 810,  33094, 811,  33093, 842,  33114, 1174, 33114, 1175, 33114, 1176, 322,   907,  336,   909,  327,   905,
    319,   903,  33088, 901,  319,   904,  336,   910,  327,   906,  320,   902,  33090, 908,  33093, 718,  320,   915,
    319,   917,  327,   919,  322,   921,  33104, 923,  319,   918,  336,   924,  320,   916,  327,   920,  33090, 922,
    33098, 260,  34077, 1264, 559,   558,  33323, 557,  336,   754,  325,   752,  33088, 750,  33114, 1177, 33114, 1179,
    33114, 1178, 34077, 1268, 33091, 258,  33091, 259,  34077, 1272, 34077, 1274, 33114, 1184, 33114, 1186, 34077, 1276,
    34077, 1278, 33114, 1190, 33114, 1192, 33091, 248,  33091, 249,  33092, 716,  33092, 717,  33091, 313,  33091, 314,
    33114, 1194, 33114, 1196, 33114, 1198, 34077, 1286, 33114, 1200, 33114, 1207, 34077, 1288, 33114, 1204, 33114, 1210,
    33114, 1211, 34077, 1292, 33114, 1214, 33114, 1215, 33114, 1218, 33114, 1219, 33114, 1224, 33114, 1225, 33114, 1248,
    33114, 1249, 33114, 1228, 33114, 1229, 33114, 1232, 33114, 1233, 33114, 1250, 33098, 261,  1310,  1295, 34077, 1294,
    33114, 1240, 33114, 1241, 33114, 1242, 33114, 1243, 332,   292,  330,   188,  345,   783,  340,   186,  325,   777,
    336,   779,  331,   290,  33088, 184,  33114, 1252, 33114, 1253, 33114, 1254, 33114, 1255, 1309,  1300, 34078, 1301,
    326,   829,  33093, 827,  33445, 666,  33445, 668,  33445, 670,  33445, 672,  33445, 674,  33445, 676,  33445, 679,
    33445, 681,  33445, 684,  33445, 685,  33445, 687,  585,   583,  584,   581,  33347, 582,  319,   1104, 323,   1103,
    324,   1102, 334,   942,  352,   1106, 320,   356,  33101, 941,  33364, 589,  320,   358,  319,   1115, 334,   956,
    33101, 955,  352,   1119, 334,   970,  320,   359,  319,   1117, 33101, 969,  319,   1131, 326,   373,  333,   985,
    323,   1130, 324,   1129, 320,   360,  33102, 986,  319,   1157, 334,   1000, 320,   361,  33101, 999,  33102, 1148,
    324,   1144, 326,   374,  320,   362,  319,   1146, 334,   1013, 33091, 1145, 352,   1161, 334,   1026, 319,   1159,
    320,   363,  33101, 1025, 33120, 1099, 33120, 1112, 320,   375,  334,   934,  323,   1096, 352,   1098, 349,   1100,
    333,   933,  324,   1095, 33087, 1033, 320,   376,  334,   950,  319,   1035, 33101, 949,  319,   1037, 334,   962,
    320,   377,  333,   961,  352,   1111, 33117, 1113, 333,   977,  323,   1124, 326,   388,  320,   378,  349,   1127,
    334,   978,  324,   1123, 33087, 1039, 319,   1041, 334,   994,  320,   390,  33101, 993,  333,   1140, 33102, 1141,
    319,   1043, 333,   1005, 320,   391,  326,   389,  324,   1136, 334,   1006, 323,   1137, 33117, 1142, 590,   593,
    33364, 595,  33358, 594,  320,   392,  352,   1153, 349,   1155, 333,   1017, 319,   1045, 33102, 1018, 320,   364,
    319,   1125, 33117, 1128, 320,   379,  319,   1138, 33117, 1143, 33120, 1154, 326,   395,  33088, 394,  33093, 719,
    33094, 400,  324,   444,  33094, 446,  33088, 398,  319,   396,  324,   448,  33094, 397,  326,   454,  33092, 442,
    33094, 456,  324,   410,  319,   402,  326,   460,  33091, 458,  33088, 401,  33094, 462,  326,   472,  323,   470,
    324,   403,  33097, 474,  33094, 476,  33094, 478,  33094, 468,  324,   445,  33094, 447,  33088, 432,  319,   430,
    324,   449,  33094, 431,  326,   455,  33092, 443,  33094, 457,  324,   423,  326,   461,  323,   459,  33087, 436,
    33088, 435,  33094, 463,  323,   471,  329,   475,  324,   437,  33094, 473,  33367, 598,  33094, 477,  33094, 479,
    33094, 469,  33094, 434,  33099, 440,  33099, 441,  33120, 1092, 34077, 1339, 320,   269,  33091, 250,  33376, 601,
    609,   605,  602,   606,  33376, 604,  33376, 607,  33094, 452,  33094, 453,  33088, 734,  33094, 466,  33094, 467,
    323,   309,  320,   764,  33094, 766,  33088, 271,  610,   613,  33384, 615,  33378, 614,  34077, 1364, 624,   623,
    617,   620,  33386, 621,  33385, 622,  521,   514,  520,   512,  33287, 511,  33091, 744,  33091, 745,  33288, 513,
    33288, 515,  33091, 780,  33091, 781,  33114, 1188, 33093, 792,  33093, 793,  324,   865,  33089, 855,  324,   866,
    33089, 856,  33089, 881,  33089, 882,  33288, 524,  33089, 899,  33089, 900,  33288, 526,  33288, 522,  320,   937,
    319,   935,  352,   1047, 33117, 939,  320,   938,  319,   936,  352,   1048, 33117, 940,  33120, 1049, 33120, 1050,
    33120, 1051, 33120, 1052, 33120, 1053, 33120, 1054, 349,   947,  319,   943,  320,   945,  33120, 1055, 320,   946,
    319,   944,  352,   1056, 33117, 948,  33120, 1057, 33120, 1058, 33120, 1059, 33120, 1060, 33120, 1061, 33120, 1062,
    320,   953,  33087, 951,  319,   952,  33088, 954,  320,   959,  33087, 957,  319,   958,  33088, 960,  319,   963,
    320,   965,  349,   967,  33120, 1063, 352,   1064, 319,   964,  320,   966,  33117, 968,  33120, 1065, 33120, 1066,
    33120, 1067, 33120, 1068, 33120, 1069, 33120, 1070, 352,   1071, 320,   973,  319,   971,  33117, 975,  320,   974,
    319,   972,  352,   1072, 33117, 976,  33120, 1073, 33120, 1074, 33120, 1075, 33120, 1076, 33120, 1077, 33120, 1078,
    319,   979,  320,   981,  33117, 983,  320,   982,  319,   980,  33117, 984,  319,   987,  320,   989,  33117, 991,
    320,   990,  319,   988,  33117, 992,  320,   997,  33087, 995,  319,   996,  33088, 998,  320,   1003, 33087, 1001,
    319,   1002, 33088, 1004, 319,   1007, 320,   1009, 33117, 1011, 320,   1010, 319,   1008, 33117, 1012, 320,   1015,
    319,   1014, 33117, 1016, 349,   1023, 319,   1019, 352,   1079, 33088, 1021, 320,   1022, 319,   1020, 352,   1080,
    33117, 1024, 33120, 1081, 33120, 1082, 33120, 1083, 33120, 1084, 33120, 1085, 33120, 1086, 352,   1087, 320,   1029,
    319,   1027, 33117, 1031, 352,   1088, 319,   1028, 320,   1030, 33117, 1032, 33120, 1089, 33120, 1090, 33120, 1091,
    33114, 1251, 33120, 1093, 33120, 1094, 33120, 1097, 33120, 1110, 33120, 1152, 33120, 1101, 320,   1121, 319,   1120,
    33117, 1122, 33120, 1114, 33120, 1156, 319,   1133, 320,   1134, 33117, 1135};

static const uint16_t decomp_seq[] = {
    0,    1166, 1167, 2783, 2784, 1989, 2075, 2064, 5,    319,  5,    320,  5,    321,  5,    322,  5,    326,  5,
    328,  7,    340,  9,    319,  9,    320,  9,    321,  9,    326,  13,   319,  13,   320,  13,   321,  13,   326,
    18,   322,  19,   319,  19,   320,  19,   321,  19,   322,  19,   326,  24,   319,  24,   320,  24,   321,  24,
    326,  28,   320,  31,   319,  31,   320,  31,   321,  31,   322,  31,   326,  31,   328,  33,   340,  35,   319,
    35,   320,  35,   321,  35,   326,  39,   319,  39,   320,  39,   321,  39,   326,  44,   322,  45,   319,  45,
    320,  45,   321,  45,   322,  45,   326,  50,   319,  50,   320,  50,   321,  50,   326,  54,   320,  54,   326,
    5,    323,  31,   323,  5,    324,  31,   324,  5,    341,  31,   341,  7,    320,  33,   320,  7,    321,  33,
    321,  7,    325,  33,   325,  7,    330,  33,   330,  8,    330,  34,   330,  9,    323,  35,   323,  9,    324,
    35,   324,  9,    325,  35,   325,  9,    341,  35,   341,  9,    330,  35,   330,  11,   321,  37,   321,  11,
    324,  37,   324,  11,   325,  37,   325,  11,   340,  37,   340,  12,   321,  38,   321,  372,  13,   322,  39,
    322,  13,   323,  39,   323,  13,   324,  39,   324,  13,   341,  39,   341,  13,   325,  14,   321,  40,   321,
    15,   340,  41,   340,  16,   320,  42,   320,  16,   340,  42,   340,  16,   330,  42,   330,  18,   320,  44,
    320,  18,   340,  44,   340,  18,   330,  44,   330,  19,   323,  45,   323,  19,   324,  45,   324,  19,   329,
    45,   329,  21,   320,  47,   320,  21,   340,  47,   340,  21,   330,  47,   330,  22,   320,  48,   320,  22,
    321,  48,   321,  22,   340,  48,   340,  22,   330,  48,   330,  23,   340,  49,   340,  23,   330,  49,   330,
    24,   322,  50,   322,  24,   323,  50,   323,  24,   324,  50,   324,  24,   328,  50,   328,  24,   329,  50,
    329,  24,   341,  50,   341,  26,   321,  52,   321,  28,   321,  54,   321,  28,   326,  29,   320,  55,   320,
    29,   325,  55,   325,  29,   330,  55,   330,  1171, 346,  1172, 346,  19,   335,  45,   335,  1173, 346,  24,
    335,  50,   335,  2000, 5,    330,  31,   330,  13,   330,  39,   330,  19,   330,  45,   330,  24,   330,  50,
    330,  24,   326,  323,  50,   326,  323,  24,   326,  320,  50,   326,  320,  24,   326,  330,  50,   326,  330,
    24,   326,  319,  50,   326,  319,  5,    326,  323,  31,   326,  323,  5,    325,  323,  31,   325,  323,  65,
    323,  93,   323,  11,   330,  37,   330,  15,   330,  41,   330,  19,   341,  45,   341,  19,   341,  323,  45,
    341,  323,  229,  330,  317,  330,  40,   330,  11,   320,  37,   320,  18,   319,  44,   319,  5,    328,  320,
    31,   328,  320,  65,   320,  93,   320,  81,   320,  109,  320,  5,    331,  31,   331,  5,    332,  31,   332,
    9,    331,  35,   331,  9,    332,  35,   332,  13,   331,  39,   331,  13,   332,  39,   332,  19,   331,  45,
    331,  19,   332,  45,   332,  21,   331,  47,   331,  21,   332,  47,   332,  24,   331,  50,   331,  24,   332,
    50,   332,  22,   339,  48,   339,  23,   339,  49,   339,  12,   330,  38,   330,  1189, 346,  1191, 346,  9,
    340,  35,   340,  19,   326,  323,  45,   326,  323,  19,   322,  323,  45,   322,  323,  19,   325,  45,   325,
    19,   325,  323,  45,   325,  323,  28,   323,  54,   323,  1193, 346,  1195, 346,  1197, 346,  1199, 346,  3,
    346,  1203, 346,  1201, 346,  2,    346,  4,    346,  1205, 346,  1206, 346,  1212, 346,  1213, 346,  1216, 346,
    1217, 346,  1220, 346,  1221, 346,  1226, 346,  1227, 346,  1230, 346,  1231, 346,  1993, 1236, 346,  1237, 346,
    1238, 346,  1239, 346,  2790, 1222, 346,  1223, 346,  1234, 346,  1235, 346,  1244, 346,  1245, 346,  1246, 346,
    1247, 346,  1260, 1261, 333,  498,  484,  318,  1,    501,  484,  56,   320,  365,  320,  58,   366,  320,  367,
    320,  368,  320,  369,  320,  371,  320,  372,  320,  383,  326,  320,  503,  484,  368,  326,  371,  326,  380,
    320,  381,  320,  382,  320,  383,  320,  386,  326,  320,  384,  320,  386,  320,  387,  320,  1418, 393,  320,
    393,  326,  406,  319,  406,  326,  405,  320,  399,  326,  411,  320,  409,  319,  413,  324,  409,  324,  1982,
    422,  324,  419,  319,  419,  326,  418,  320,  433,  326,  424,  320,  422,  319,  426,  324,  1419, 438,  331,
    439,  331,  1990, 407,  324,  420,  324,  404,  324,  417,  324,  404,  326,  417,  326,  406,  324,  419,  324,
    450,  326,  451,  326,  407,  326,  420,  326,  408,  326,  421,  326,  409,  323,  422,  323,  409,  326,  422,
    326,  412,  326,  425,  326,  464,  326,  465,  326,  416,  326,  429,  326,  413,  323,  426,  323,  413,  326,
    426,  326,  413,  329,  426,  329,  414,  326,  427,  326,  415,  326,  428,  326,  1977, 516,  519,  516,  520,
    517,  520,  516,  521,  518,  520,  1420, 527,  520,  523,  520,  525,  520,  1992, 534,  542,  538,  542,  540,
    542,  528,  542,  529,  542,  530,  542,  531,  542,  532,  542,  533,  542,  536,  542,  537,  542,  556,  555,
    556,  559,  551,  554,  552,  554,  553,  554,  567,  571,  570,  571,  2776, 563,  571,  564,  571,  565,  571,
    566,  571,  1180, 346,  1182, 346,  1181, 346,  1259, 346,  580,  584,  580,  579,  580,  585,  576,  578,  577,
    578,  588,  596,  591,  590,  592,  590,  591,  596,  1183, 346,  1185, 346,  597,  599,  1187, 346,  600,  608,
    603,  608,  603,  609,  603,  602,  603,  602,  608,  611,  610,  612,  610,  611,  616,  619,  617,  619,  618,
    619,  618,  617,  619,  624,  626,  660,  628,  660,  630,  660,  632,  660,  634,  660,  625,  659,  637,  638,
    637,  640,  657,  644,  658,  644,  637,  644,  647,  660,  649,  660,  651,  660,  653,  660,  655,  660,  646,
    659,  1892, 1895, 1406, 662,  664,  1897, 1263, 1309, 1265, 1309, 1267, 1309, 1269, 1309, 1271, 1309, 1273, 1309,
    1275, 1309, 1277, 1309, 1279, 1309, 1281, 1309, 1283, 1309, 1285, 1309, 1287, 1309, 1289, 1309, 1291, 1309, 1293,
    1309, 1293, 1310, 1296, 1309, 1296, 1310, 1299, 1309, 1299, 1310, 1302, 1309, 1302, 1310, 1305, 1309, 1305, 1310,
    1262, 1309, 2753, 2656, 2662, 2658, 2662, 1311, 1309, 2660, 2662, 1314, 1309, 1316, 1309, 1318, 1309, 1320, 1309,
    1322, 1309, 1324, 1309, 1326, 1309, 1328, 1309, 1330, 1309, 1332, 1309, 1334, 1309, 1336, 1309, 1338, 1309, 1340,
    1309, 1342, 1309, 1344, 1309, 1344, 1310, 1347, 1309, 1347, 1310, 1350, 1309, 1350, 1310, 1353, 1309, 1353, 1310,
    1356, 1309, 1356, 1310, 1903, 1313, 1309, 1359, 1309, 1360, 1309, 1361, 1309, 1362, 1309, 1368, 1309, 1407, 2666,
    2663, 2667, 2663, 1906, 2668, 2677, 2669, 2677, 2669, 2677, 2678, 2669, 2677, 2679, 2669, 2677, 2680, 2669, 2677,
    2681, 2669, 2677, 2682, 1907, 1408, 2756, 2683, 2677, 2684, 2677, 2683, 2677, 2678, 2684, 2677, 2678, 2683, 2677,
    2679, 2684, 2677, 2679, 1913, 1409, 1917, 1915, 1918, 2758, 1923, 1898, 1410, 1926, 1928, 1932, 1411, 1899, 2760,
    2761, 1412, 2762, 1936, 2763, 1938, 1941, 1943, 2764, 2754, 2765, 1945, 2766, 1947, 2718, 1413, 1951, 1952, 1415,
    1953, 1588, 2767, 2768, 2719, 2720, 1773, 1777, 1774, 1775, 1778, 2794, 1957, 1779, 2729, 1772, 1785, 1786, 1958,
    1394, 1790, 1789, 2730, 1783, 2067, 1796, 2731, 2732, 1797, 1802, 1416, 1801, 1800, 1395, 1803, 1806, 1963, 1805,
    1808, 2693, 1811, 2755, 2733, 1962, 1814, 2735, 1819, 1821, 1822, 1964, 2736, 1824, 1825, 2737, 2738, 1500, 1831,
    1833, 1396, 1834, 1397, 1965, 1840, 1841, 1843, 1844, 1966, 1847, 1398, 1849, 2739, 1851, 1967, 2740, 1854, 2709,
    1856, 2741, 1969, 2742, 2743, 1399, 1971, 1400, 1864, 2769, 2745, 2744, 2746, 2747, 1866, 1968, 1867, 1869, 1402,
    1870, 1970, 1403, 1404, 2749, 1872, 1874, 1975, 1877, 1405, 2750, 1885, 2751, 1976, 2752, 1442, 1440, 1443, 2691,
    1450, 1454, 1455, 1457, 1459, 1460, 1463, 1461, 1370, 2695, 1466, 1467, 1468, 1473, 2692, 1371, 1469, 1475, 2694,
    1478, 1479, 1448, 1480, 1481, 2789, 1487, 1488, 1373, 1493, 1494, 1495, 1496, 1374, 1501, 1502, 1505, 1507, 1508,
    1509, 1510, 1512, 1513, 1514, 1515, 1517, 1518, 2698, 1804, 1520, 1521, 2699, 1523, 1524, 1525, 1532, 1528, 1530,
    1531, 1533, 1535, 1536, 1537, 1539, 1540, 1542, 1544, 1545, 1547, 1554, 1549, 1555, 1550, 1552, 1489, 1570, 1557,
    1558, 1559, 1556, 1561, 1560, 1566, 2700, 1571, 1572, 1573, 1574, 1575, 1580, 2701, 2702, 1583, 1584, 1585, 1582,
    1587, 1375, 1376, 1589, 1591, 2703, 1593, 1594, 1595, 1597, 2704, 1598, 1599, 1637, 1600, 1377, 1602, 1606, 1608,
    1607, 2706, 1610, 2707, 1613, 1612, 1614, 1617, 1618, 1378, 1619, 1620, 1621, 1622, 1379, 2708, 1380, 1625, 1626,
    1627, 1629, 2799, 1634, 2710, 1636, 1381, 2717, 2759, 1638, 1640, 1382, 1642, 1645, 1646, 1648, 1652, 1384, 1383,
    1653, 2711, 1654, 1659, 1660, 1661, 1664, 1665, 1669, 1667, 1668, 1670, 1671, 1672, 1674, 1675, 1678, 1679, 1683,
    1687, 2714, 1686, 1684, 1688, 1690, 1695, 2715, 1697, 1694, 1692, 1385, 1699, 1701, 1703, 1700, 1386, 1705, 1707,
    2716, 1712, 1722, 1714, 1389, 1717, 1388, 1387, 1476, 1477, 1723, 1718, 1950, 1414, 1724, 1725, 1726, 1730, 1728,
    2721, 1390, 1735, 1732, 1738, 1740, 2723, 1741, 1737, 1743, 1391, 1744, 1745, 1746, 1749, 2724, 1751, 1392, 1753,
    2725, 1754, 1393, 1755, 1758, 1760, 1761, 2726, 2705, 2727, 1762, 2728, 1765, 1767, 1763, 1769, 2046, 1721, 2060,
    2051, 1791, 1439, 1522, 2161, 1578, 2087, 1541, 1577, 1860, 1937, 1999, 2012, 2024, 2074, 1747, 1770, 1810, 1836,
    1985, 2082, 2135, 1444, 1516, 1752, 1818, 1998, 2146, 1611, 1798, 1994, 2028, 1680, 1954, 2015, 1776, 1828, 2076,
    1452, 1482, 1504, 1704, 1750, 1817, 1863, 1942, 1996, 2001, 2058, 2117, 2139, 2145, 1889, 1924, 1978, 2094, 2147,
    2037, 1569, 1635, 1909, 1948, 1823, 1876, 2050, 2115, 1568, 1603, 1748, 1781, 1793, 1921, 1930, 2102, 1503, 1949,
    1485, 1484, 1896, 1925, 1984, 2104, 2044, 1681, 2040, 1441, 1649, 1832, 1878, 1456, 1643, 1437, 1766, 1708, 1920,
    1519, 1564, 1865, 1986, 2033, 2068, 1764, 1685, 1691, 1853, 1446, 1471, 1483, 1739, 1916, 1960, 2036, 2086, 1506,
    1529, 1581, 1633, 1710, 1799, 1879, 2099, 2137, 2148, 2151, 1498, 1720, 1756, 2066, 1623, 1666, 1673, 1702, 1795,
    1812, 1845, 1894, 1927, 1946, 2062, 1988, 2070, 2095, 1490, 1499, 1534, 1809, 2019, 1628, 1647, 1689, 1759, 1908,
    1830, 1449, 1553, 1616, 1650, 1835, 1842, 1939, 1944, 2088, 2114, 2118, 2124, 1453, 1893, 2084, 2110, 1656, 1445,
    1462, 1596, 1601, 1709, 1815, 1859, 1991, 2073, 2159, 1716, 2101, 1497, 1731, 1734, 1787, 1838, 1852, 1873, 1919,
    2127, 1472, 1676, 2105, 1458, 1609, 1782, 2063, 1641, 1658, 1736, 2107, 1491, 1526, 1605, 1713, 1727, 1742, 1768,
    1837, 1855, 1935, 2020, 2023, 2085, 2112, 1511, 1788, 1527, 1816, 1846, 1995, 2108, 2141, 2149, 1733, 1780, 1955,
    1902, 1904, 1911, 1827, 1807, 2043, 1447, 1972, 1492, 1624, 1682, 1914, 1592, 1771, 1719, 2065, 2016, 2103, 2030,
    1631, 1464, 1546, 1434, 2773, 1563, 1435, 1715, 2797, 2798, 1486, 1829, 1861, 1880, 1887, 1888, 2119, 1912, 1940,
    1997, 2774, 2039, 2071, 2079, 2775, 2129, 2130, 2131, 2144, 2077, 2109, 1543, 1551, 1562, 1565, 1604, 1663, 1711,
    1784, 1794, 1813, 1820, 1839, 1875, 1881, 1883, 1882, 1884, 1886, 1890, 1891, 1900, 1905, 1929, 1931, 1934, 1956,
    1961, 1987, 2026, 2031, 2041, 2042, 2052, 2053, 2069, 2113, 2122, 2126, 1651, 2734, 1959, 2009, 1438, 1470, 1451,
    1465, 1474, 1538, 1548, 1567, 1576, 1579, 1586, 1590, 1630, 1632, 1639, 1644, 1655, 1657, 1662, 1677, 1693, 1696,
    1698, 1706, 1729, 1757, 1792, 1871, 1826, 1848, 1850, 1857, 1858, 1862, 1868, 1901, 1910, 1922, 1933, 1973, 1983,
    2010, 2027, 2029, 2034, 2035, 2038, 2045, 2072, 2083, 2090, 2106, 2120, 2123, 2138, 2713, 2712, 2722, 1401, 2748,
    2757, 2781, 2158, 2160, 2032, 2047, 2780, 2048, 2049, 2054, 665,  677,  667,  677,  2002, 669,  677,  2055, 671,
    677,  673,  677,  2782, 675,  677,  2696, 496,  480,  510,  481,  2056, 2003, 2059, 508,  486,  508,  487,  508,
    484,  486,  508,  484,  487,  488,  481,  488,  482,  488,  484,  489,  484,  490,  484,  491,  484,  492,  484,
    493,  484,  494,  484,  495,  484,  496,  484,  497,  484,  678,  677,  499,  484,  680,  677,  500,  484,  682,
    677,  683,  677,  686,  677,  504,  484,  2005, 505,  484,  506,  484,  507,  484,  509,  484,  493,  483,  489,
    485,  498,  485,  504,  485,  2078, 2080, 2785, 2004, 2081, 2089, 2092, 2093, 2091, 2007, 2096, 2097, 2786, 2098,
    1426, 1974, 2006, 2100, 2787, 1427, 2771, 2111, 1615, 2116, 2788, 2772, 1428, 1429, 2008, 2121, 2791, 1430, 2792,
    2125, 2793, 2128, 1431, 2011, 2132, 2133, 2134, 2136, 1432, 1979, 1421, 2061, 2140, 2142, 1433, 2013, 2143, 2795,
    2796, 2014, 2150, 1436, 2152, 1422, 2153, 2154, 2155, 2156, 2157, 2017, 2800, 1980, 2018, 2777, 2697, 2021, 2022,
    1423, 1981, 2025, 1372, 2778, 2057, 2779, 1424, 2770, 1425, 5,    338,  31,   338,  6,    325,  32,   325,  6,
    336,  32,   336,  6,    345,  32,   345,  7,    340,  320,  33,   340,  320,  8,    325,  34,   325,  8,    336,
    34,   336,  8,    345,  34,   345,  8,    340,  34,   340,  8,    342,  34,   342,  9,    323,  319,  35,   323,
    319,  9,    323,  320,  35,   323,  320,  9,    342,  35,   342,  9,    344,  35,   344,  9,    340,  324,  35,
    340,  324,  10,   325,  36,   325,  11,   323,  37,   323,  12,   325,  38,   325,  12,   336,  38,   336,  12,
    326,  38,   326,  12,   340,  38,   340,  12,   343,  38,   343,  13,   344,  39,   344,  13,   326,  320,  39,
    326,  320,  15,   320,  41,   320,  15,   336,  41,   336,  15,   345,  41,   345,  16,   336,  42,   336,  16,
    336,  323,  42,   336,  323,  16,   345,  42,   345,  16,   342,  42,   342,  17,   320,  43,   320,  17,   325,
    43,   325,  17,   336,  43,   336,  18,   325,  44,   325,  18,   336,  44,   336,  18,   345,  44,   345,  18,
    342,  44,   342,  19,   322,  320,  45,   322,  320,  19,   322,  326,  45,   322,  326,  19,   323,  319,  45,
    323,  319,  19,   323,  320,  45,   323,  320,  20,   320,  46,   320,  20,   325,  46,   325,  21,   325,  47,
    325,  21,   336,  47,   336,  21,   336,  323,  47,   336,  323,  21,   345,  47,   345,  22,   325,  48,   325,
    22,   336,  48,   336,  22,   320,  325,  48,   320,  325,  22,   330,  325,  48,   330,  325,  22,   336,  325,
    48,   336,  325,  23,   325,  49,   325,  23,   336,  49,   336,  23,   345,  49,   345,  23,   342,  49,   342,
    24,   337,  50,   337,  24,   344,  50,   344,  24,   342,  50,   342,  24,   322,  320,  50,   322,  320,  24,
    323,  326,  50,   323,  326,  25,   322,  51,   322,  25,   336,  51,   336,  26,   319,  52,   319,  26,   320,
    52,   320,  26,   326,  52,   326,  26,   325,  52,   325,  26,   336,  52,   336,  27,   325,  53,   325,  27,
    326,  53,   326,  28,   325,  54,   325,  29,   321,  55,   321,  29,   336,  55,   336,  29,   345,  55,   345,
    38,   345,  49,   326,  52,   328,  54,   328,  224,  325,  1417, 5,    336,  31,   336,  5,    327,  31,   327,
    5,    321,  320,  31,   321,  320,  5,    321,  319,  31,   321,  319,  5,    321,  327,  31,   321,  327,  5,
    321,  322,  31,   321,  322,  5,    336,  321,  31,   336,  321,  5,    324,  320,  31,   324,  320,  5,    324,
    319,  31,   324,  319,  5,    324,  327,  31,   324,  327,  5,    324,  322,  31,   324,  322,  5,    336,  324,
    31,   336,  324,  9,    336,  35,   336,  9,    327,  35,   327,  9,    322,  35,   322,  9,    321,  320,  35,
    321,  320,  9,    321,  319,  35,   321,  319,  9,    321,  327,  35,   321,  327,  9,    321,  322,  35,   321,
    322,  9,    336,  321,  35,   336,  321,  13,   327,  39,   327,  13,   336,  39,   336,  19,   336,  45,   336,
    19,   327,  45,   327,  19,   321,  320,  45,   321,  320,  19,   321,  319,  45,   321,  319,  19,   321,  327,
    45,   321,  327,  19,   321,  322,  45,   321,  322,  19,   336,  321,  45,   336,  321,  19,   335,  320,  45,
    335,  320,  19,   335,  319,  45,   335,  319,  19,   335,  327,  45,   335,  327,  19,   335,  322,  45,   335,
    322,  19,   335,  336,  45,   335,  336,  24,   336,  50,   336,  24,   327,  50,   327,  24,   335,  320,  50,
    335,  320,  24,   335,  319,  50,   335,  319,  24,   335,  327,  50,   335,  327,  24,   335,  322,  50,   335,
    322,  24,   335,  336,  50,   335,  336,  28,   319,  54,   319,  28,   336,  54,   336,  28,   327,  54,   327,
    28,   322,  54,   322,  380,  333,  380,  334,  380,  333,  319,  380,  334,  319,  380,  333,  320,  380,  334,
    320,  380,  333,  349,  380,  334,  349,  365,  333,  365,  334,  365,  333,  319,  365,  334,  319,  365,  333,
    320,  365,  334,  320,  365,  333,  349,  365,  334,  349,  381,  333,  381,  334,  381,  333,  319,  381,  334,
    319,  381,  333,  320,  381,  334,  320,  366,  333,  366,  334,  366,  333,  319,  366,  334,  319,  366,  333,
    320,  366,  334,  320,  382,  333,  382,  334,  382,  333,  319,  382,  334,  319,  382,  333,  320,  382,  334,
    320,  382,  333,  349,  382,  334,  349,  367,  333,  367,  334,  367,  333,  319,  367,  334,  319,  367,  333,
    320,  367,  334,  320,  367,  333,  349,  367,  334,  349,  383,  333,  383,  334,  383,  333,  319,  383,  334,
    319,  383,  333,  320,  383,  334,  320,  383,  333,  349,  383,  334,  349,  368,  333,  368,  334,  368,  333,
    319,  368,  334,  319,  368,  333,  320,  368,  334,  320,  368,  333,  349,  368,  334,  349,  384,  333,  384,
    334,  384,  333,  319,  384,  334,  319,  384,  333,  320,  384,  334,  320,  369,  333,  369,  334,  369,  333,
    319,  369,  334,  319,  369,  333,  320,  369,  334,  320,  386,  333,  386,  334,  386,  333,  319,  386,  334,
    319,  386,  333,  320,  386,  334,  320,  386,  333,  349,  386,  334,  349,  371,  334,  371,  334,  319,  371,
    334,  320,  371,  334,  349,  387,  333,  387,  334,  387,  333,  319,  387,  334,  319,  387,  333,  320,  387,
    334,  320,  387,  333,  349,  387,  334,  349,  372,  333,  372,  334,  372,  333,  319,  372,  334,  319,  372,
    333,  320,  372,  334,  320,  372,  333,  349,  372,  334,  349,  380,  319,  381,  319,  382,  319,  383,  319,
    384,  319,  386,  319,  387,  319,  380,  333,  352,  380,  334,  352,  380,  333,  319,  352,  380,  334,  319,
    352,  380,  333,  320,  352,  380,  334,  320,  352,  380,  333,  349,  352,  380,  334,  349,  352,  365,  333,
    352,  365,  334,  352,  365,  333,  319,  352,  365,  334,  319,  352,  365,  333,  320,  352,  365,  334,  320,
    352,  365,  333,  349,  352,  365,  334,  349,  352,  382,  333,  352,  382,  334,  352,  382,  333,  319,  352,
    382,  334,  319,  352,  382,  333,  320,  352,  382,  334,  320,  352,  382,  333,  349,  352,  382,  334,  349,
    352,  367,  333,  352,  367,  334,  352,  367,  333,  319,  352,  367,  334,  319,  352,  367,  333,  320,  352,
    367,  334,  320,  352,  367,  333,  349,  352,  367,  334,  349,  352,  387,  333,  352,  387,  334,  352,  387,
    333,  319,  352,  387,  334,  319,  352,  387,  333,  320,  352,  387,  334,  320,  352,  387,  333,  349,  352,
    387,  334,  349,  352,  372,  333,  352,  372,  334,  352,  372,  333,  319,  352,  372,  334,  319,  352,  372,
    333,  320,  352,  372,  334,  320,  352,  372,  333,  349,  352,  372,  334,  349,  352,  380,  324,  380,  323,
    380,  319,  352,  380,  352,  380,  320,  352,  502,  484,  380,  349,  380,  349,  352,  365,  324,  365,  323,
    365,  319,  365,  352,  56,   349,  382,  319,  352,  382,  352,  382,  320,  352,  382,  349,  382,  349,  352,
    366,  319,  367,  319,  367,  352,  1108, 319,  1108, 320,  1108, 349,  383,  324,  383,  323,  383,  326,  319,
    383,  349,  383,  326,  349,  368,  324,  368,  323,  368,  319,  1163, 319,  1163, 320,  1163, 349,  386,  324,
    386,  323,  386,  326,  319,  385,  333,  385,  334,  386,  349,  386,  326,  349,  371,  324,  371,  323,  371,
    319,  370,  334,  56,   319,  30,   387,  319,  352,  387,  352,  387,  320,  352,  387,  349,  387,  349,  352,
    369,  319,  372,  319,  372,  352,  57};

static const uint8_t decomp_idx_t1[] = {
    0,  0,  0,  1,  2,  3,  4,  5,  6,  0,  0,  0,  0,  7,  8,  9,  10, 11, 0,  12, 0,  0,  0, 0,  13, 0,  0, 14, 0, 0,
    0,  0,  0,  0,  0,  0,  15, 16, 0,  17, 18, 19, 0,  0,  0,  20, 21, 22, 0,  23, 0,  24, 0, 25, 0,  26, 0, 0,  0, 0,
    0,  27, 28, 0,  29, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  30, 31, 0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    32, 33, 34, 35, 36, 37, 38, 39, 40, 0,  0,  0,  41, 0,  42, 43, 44, 45, 46, 47, 48, 0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  49, 0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  50, 51, 52, 0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  63, 0,  64, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  65, 66, 67, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0, 0,  0, 0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  68, 69, 70, 71, 72, 73, 74, 75, 76};

static const uint16_t decomp_idx_t2[] = {
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    16392, 16394, 16396, 16398, 16400, 16402, 0,     16404, 16406, 16408, 16410, 16412, 16414, 16416, 16418, 16420,
    0,     16422, 16424, 16426, 16428, 16430, 16432, 0,     0,     16434, 16436, 16438, 16440, 16442, 0,     0,
    16444, 16446, 16448, 16450, 16452, 16454, 0,     16456, 16458, 16460, 16462, 16464, 16466, 16468, 16470, 16472,
    0,     16474, 16476, 16478, 16480, 16482, 16484, 0,     0,     16486, 16488, 16490, 16492, 16494, 0,     16496,
    16498, 16500, 16502, 16504, 16506, 16508, 16510, 16512, 16514, 16516, 16518, 16520, 16522, 16524, 16526, 16528,
    0,     0,     16530, 16532, 16534, 16536, 16538, 16540, 16542, 16544, 16546, 16548, 16550, 16552, 16554, 16556,
    16558, 16560, 16562, 16564, 16566, 16568, 0,     0,     16571, 16573, 16575, 16577, 16579, 16581, 16583, 16585,
    16587, 0,     0,     0,     16589, 16591, 16593, 16595, 0,     16597, 16599, 16601, 16603, 16605, 16607, 0,
    0,     0,     0,     16609, 16611, 16613, 16615, 16617, 16619, 0,     0,     0,     16621, 16623, 16625, 16627,
    16629, 16631, 0,     0,     16633, 16635, 16637, 16639, 16641, 16643, 16645, 16647, 16649, 16651, 16653, 16655,
    16657, 16659, 16661, 16663, 16665, 16667, 0,     0,     16669, 16671, 16673, 16675, 16677, 16679, 16681, 16683,
    16685, 16687, 16689, 16691, 16693, 16695, 16697, 16699, 16701, 16703, 16705, 16707, 16709, 16711, 16713, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    16719, 16721, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     16725,
    16727, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     16730, 16732, 16734,
    16736, 16738, 16740, 16742, 16744, 33130, 33133, 33136, 33139, 33142, 33145, 33148, 33151, 0,     33154, 33157,
    33160, 33163, 16782, 16784, 0,     0,     16786, 16788, 16790, 16792, 16794, 16796, 33182, 33185, 16804, 16806,
    16808, 0,     0,     0,     16810, 16812, 0,     0,     16814, 16816, 33202, 33205, 16824, 16826, 16828, 16830,
    16832, 16834, 16836, 16838, 16840, 16842, 16844, 16846, 16848, 16850, 16852, 16854, 16856, 16858, 16860, 16862,
    16864, 16866, 16868, 16870, 16872, 16874, 16876, 16878, 16880, 16882, 16884, 16886, 0,     0,     16888, 16890,
    0,     0,     0,     0,     0,     0,     16776, 16779, 16896, 16898, 33284, 33287, 33290, 33293, 16912, 16914,
    33300, 33303, 16922, 16924, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    9,     11,    0,     612,   16753, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     615,   0,     0,     0,     0,     0,     0,     0,     0,     0,     616,   0,
    0,     0,     0,     0,     0,     17003, 17005, 623,   17008, 17010, 17012, 0,     17014, 0,     17016, 17018,
    33404, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17025, 17027, 17029, 17031, 17033, 17035,
    33421, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17020, 17037, 17040, 17042, 17044, 0,
    0,     0,     0,     17047, 17049, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    17051, 17053, 0,     17055, 0,     0,     0,     17057, 0,     0,     0,     0,     17059, 17061, 17063, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     17065, 0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     17068, 0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    17070, 17072, 0,     17074, 0,     0,     0,     17076, 0,     0,     0,     0,     17078, 17080, 17082, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     17085, 17087, 0,     0,     0,     0,     0,     0,     0,     0,
    0,     17090, 17092, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    17094, 17096, 17098, 17100, 0,     0,     17102, 17104, 0,     0,     17106, 17108, 17110, 17112, 17114, 17116,
    0,     0,     17118, 17120, 17122, 17124, 17126, 17128, 0,     0,     17130, 17132, 17134, 17136, 17138, 17140,
    17142, 17144, 17146, 17148, 17150, 17152, 0,     0,     17154, 17156, 0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     17159, 17161, 17163, 17165, 17167, 0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    17170, 0,     17172, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     17174, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     17177, 0,     0,     0,     0,     0,     0,
    0,     17179, 0,     0,     17181, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     17183, 17185, 17187, 17189, 17191, 17193, 17195, 17197,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17199, 17201, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17203, 17205, 0,     17207,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     17209, 0,     0,     17211, 0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     17214, 17216, 17218, 0,     0,     17220, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     17230, 0,     0,     17232, 17234, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17236, 17238, 0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     17240, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17242, 17244, 17246, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     17252, 0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    17256, 0,     0,     0,     0,     0,     0,     17258, 17260, 0,     17262, 33648, 0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17267, 17269, 17271, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17273, 0,     17275, 33661, 17280, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     17282, 0,     0,     0,     0,     0,     0,     0,     0,     0,     17284, 0,     0,
    0,     0,     17286, 0,     0,     0,     0,     17288, 0,     0,     0,     0,     17290, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     17292, 0,     0,     0,     0,     0,     0,
    0,     0,     0,     17294, 0,     17296, 17298, 0,     17300, 0,     0,     0,     0,     0,     0,     0,
    0,     17302, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     17304, 0,     0,     0,     0,     0,     0,     0,     0,     0,     17306, 0,     0,
    0,     0,     17308, 0,     0,     0,     0,     17310, 0,     0,     0,     0,     17312, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     17314, 0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     17319, 0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     18275, 0,     18277, 0,     18280, 0,     18283, 0,     18285, 0,
    0,     0,     18288, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     18332, 0,     18336, 0,     0,
    18340, 18342, 0,     18344, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18446, 18448, 18450, 18452, 18454, 18456, 18458, 18460, 34846, 34849, 18468, 18470, 18472, 18474, 18476, 18478,
    18480, 18482, 18484, 18486, 34872, 34875, 34878, 34881, 18500, 18502, 18504, 18506, 34892, 34895, 18514, 18516,
    18518, 18520, 18522, 18524, 18526, 18528, 18530, 18532, 18534, 18536, 18538, 18540, 18542, 18544, 34930, 34933,
    18552, 18554, 18556, 18558, 18560, 18562, 18564, 18566, 34952, 34955, 18574, 18576, 18578, 18580, 18582, 18584,
    18586, 18588, 18590, 18592, 18594, 18596, 18598, 18600, 18602, 18604, 18606, 18608, 34994, 34997, 35000, 35003,
    35006, 35009, 35012, 35015, 18634, 18636, 18638, 18640, 18642, 18644, 18646, 18648, 35034, 35037, 18656, 18658,
    18660, 18662, 18664, 18666, 35052, 35055, 35058, 35061, 35064, 35067, 18686, 18688, 18690, 18692, 18694, 18696,
    18698, 18700, 18702, 18704, 18706, 18708, 18710, 18712, 35098, 35101, 35104, 35107, 18726, 18728, 18730, 18732,
    18734, 18736, 18738, 18740, 18742, 18744, 18746, 18748, 18750, 18752, 18754, 18756, 18758, 18760, 18762, 18764,
    18766, 18768, 18770, 18772, 18774, 18776, 18778, 18780, 18782, 18784, 0,     18786, 0,     0,     0,     0,
    18789, 18791, 18793, 18795, 35181, 35184, 35187, 35190, 35193, 35196, 35199, 35202, 35205, 35208, 35211, 35214,
    35217, 35220, 35223, 35226, 35229, 35232, 35235, 35238, 18857, 18859, 18861, 18863, 18865, 18867, 35253, 35256,
    35259, 35262, 35265, 35268, 35271, 35274, 35277, 35280, 18899, 18901, 18903, 18905, 18907, 18909, 18911, 18913,
    35299, 35302, 35305, 35308, 35311, 35314, 35317, 35320, 35323, 35326, 35329, 35332, 35335, 35338, 35341, 35344,
    35347, 35350, 35353, 35356, 18975, 18977, 18979, 18981, 35367, 35370, 35373, 35376, 35379, 35382, 35385, 35388,
    35391, 35394, 19013, 19015, 19017, 19019, 19021, 19023, 19025, 19027, 0,     0,     0,     0,     0,     0,
    19029, 19031, 35417, 35420, 35423, 35426, 35429, 35432, 19051, 19053, 35439, 35442, 35445, 35448, 35451, 35454,
    19073, 19075, 35461, 35464, 35467, 35470, 0,     0,     19089, 19091, 35477, 35480, 35483, 35486, 0,     0,
    19105, 19107, 35493, 35496, 35499, 35502, 35505, 35508, 19127, 19129, 35515, 35518, 35521, 35524, 35527, 35530,
    19149, 19151, 35537, 35540, 35543, 35546, 35549, 35552, 19171, 19173, 35559, 35562, 35565, 35568, 35571, 35574,
    19193, 19195, 35581, 35584, 35587, 35590, 0,     0,     19209, 19211, 35597, 35600, 35603, 35606, 0,     0,
    19225, 19227, 35613, 35616, 35619, 35622, 35625, 35628, 0,     19247, 0,     35633, 0,     35636, 0,     35639,
    19258, 19260, 35646, 35649, 35652, 35655, 35658, 35661, 19280, 19282, 35668, 35671, 35674, 35677, 35680, 35683,
    19302, 17029, 19304, 17031, 19306, 17033, 19308, 17035, 19310, 17040, 19312, 17042, 19314, 17044, 0,     0,
    35700, 35703, 52090, 52094, 52098, 52102, 52106, 52110, 35730, 35733, 52120, 52124, 52128, 52132, 52136, 52140,
    35760, 35763, 52150, 52154, 52158, 52162, 52166, 52170, 35790, 35793, 52180, 52184, 52188, 52192, 52196, 52200,
    35820, 35823, 52210, 52214, 52218, 52222, 52226, 52230, 35850, 35853, 52240, 52244, 52248, 52252, 52256, 52260,
    19496, 19498, 35884, 19503, 35889, 0,     19510, 35896, 19515, 19517, 19519, 17005, 19521, 0,     636,   0,
    0,     19523, 35909, 19528, 35914, 0,     19533, 35919, 19538, 17008, 19540, 17010, 19542, 19544, 19546, 19548,
    19550, 19552, 35938, 33404, 0,     0,     19557, 35943, 19562, 19564, 19566, 17012, 0,     19568, 19570, 19572,
    19574, 19576, 35962, 33421, 19581, 19583, 19585, 35971, 19590, 19592, 19594, 17016, 19596, 19598, 17003, 3216,
    0,     0,     35985, 19604, 35990, 0,     19609, 35995, 19614, 17014, 19616, 17018, 19618, 3236,  0,     0,
    1,     2,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     186,   0,     0,     0,     209,   16402, 0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     16715, 16717, 0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     16723, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17222, 17224, 17226,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     17248, 0,     0,     0,     0,     17250, 0,     0,     17254, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     16892, 0,     16894, 0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     16926, 0,     0,     16928, 0,     0,     16930, 0,     16932, 0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    16934, 0,     16936, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     16938, 16940, 16942,
    16944, 16946, 0,     0,     16948, 16950, 0,     0,     16952, 16954, 0,     0,     0,     0,     0,     0,
    16956, 16958, 0,     0,     16960, 16962, 0,     0,     16964, 16966, 0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     16969, 16971, 16973, 16975,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    16978, 16980, 16982, 16984, 0,     0,     0,     0,     0,     0,     16986, 16988, 16990, 16992, 0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     610,   611,   0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17228, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17322, 0,     17324, 0,
    17326, 0,     17328, 0,     17330, 0,     17332, 0,     17334, 0,     17336, 0,     17338, 0,     17340, 0,
    17342, 0,     17344, 0,     0,     17346, 0,     17348, 0,     17350, 0,     0,     0,     0,     0,     0,
    17352, 17354, 0,     17356, 17358, 0,     17360, 17362, 0,     17364, 17366, 0,     17368, 17370, 0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     17372, 0,     0,     0,     0,     0,     0,     0,     0,     0,     17379, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17383, 0,     17385, 0,
    17387, 0,     17389, 0,     17391, 0,     17393, 0,     17395, 0,     17397, 0,     17399, 0,     17401, 0,
    17403, 0,     17405, 0,     0,     17407, 0,     17409, 0,     17411, 0,     0,     0,     0,     0,     0,
    17413, 17415, 0,     17417, 17419, 0,     17421, 17423, 0,     17425, 17427, 0,     17429, 17431, 0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     17434, 0,     0,     17436, 17438, 17440, 17442, 0,     0,     0,     17444, 0,
    1498,  1499,  1500,  1501,  1502,  1503,  1504,  1505,  1505,  1506,  1507,  1508,  1509,  1419,  1510,  1511,
    1512,  1513,  1514,  1515,  1516,  1517,  1518,  1519,  1520,  1521,  1522,  1523,  1524,  1525,  1526,  1527,
    1528,  1529,  1530,  1531,  1532,  1533,  1534,  1535,  1388,  1458,  1536,  1537,  1538,  1539,  1540,  1541,
    1542,  1543,  1544,  1545,  1546,  1547,  1548,  1549,  1550,  1551,  1552,  1241,  1553,  1554,  1555,  1556,
    1557,  1558,  1559,  1560,  1561,  1562,  1563,  1564,  1565,  1566,  1567,  1568,  1569,  1570,  1571,  1572,
    1573,  1574,  1575,  1576,  1577,  1578,  1579,  1580,  1581,  1582,  1583,  1584,  1516,  1585,  1586,  1357,
    1587,  1588,  1214,  1293,  1589,  1590,  1591,  1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,  1600,
    1487,  1601,  1602,  1603,  1231,  1604,  1605,  1606,  1607,  1608,  1609,  1610,  1611,  1612,  1613,  1614,
    1615,  1616,  1617,  1618,  1619,  1620,  1621,  1622,  1623,  1624,  1625,  1626,  1627,  1628,  1629,  1630,
    1631,  1632,  1633,  1634,  1635,  1636,  1637,  1638,  1639,  1640,  1641,  1642,  1643,  1644,  1645,  1646,
    1647,  1600,  1648,  1649,  1650,  1651,  1652,  1653,  1654,  1655,  1357,  1656,  1657,  1658,  1659,  1660,
    1661,  1662,  1663,  1664,  1665,  1666,  1667,  1668,  1669,  1670,  1671,  1672,  1673,  1674,  1675,  1516,
    1676,  1677,  1678,  1679,  1680,  1681,  1682,  1683,  1684,  1685,  1148,  1686,  1687,  1688,  1689,  1690,
    1691,  1692,  1693,  1694,  1695,  1696,  1697,  1698,  1699,  1700,  1701,  1588,  1702,  1703,  1704,  1705,
    1706,  1707,  1708,  1709,  1710,  1711,  1712,  1713,  1714,  1715,  1716,  1717,  1718,  1719,  1720,  1721,
    1722,  1723,  1724,  1725,  1726,  1727,  1728,  1729,  1730,  1731,  1732,  1733,  1734,  1735,  1736,  1737,
    1327,  1738,  1739,  1740,  1741,  1742,  1743,  1744,  1745,  1746,  1747,  1748,  1749,  1750,  0,     0,
    1753,  0,     1755,  0,     0,     1758,  1759,  1760,  1761,  1762,  1763,  932,   1764,  1765,  1766,  0,
    1767,  0,     1769,  0,     0,     1770,  1771,  0,     0,     0,     1773,  1774,  1775,  1776,  1777,  1778,
    1255,  1260,  1264,  1288,  1289,  1295,  1779,  1323,  1780,  1781,  1782,  1783,  1366,  1406,  1784,  1413,
    1418,  1442,  1785,  1449,  1468,  1147,  1786,  1787,  1788,  1789,  1790,  1791,  1792,  1793,  1794,  1795,
    1246,  1796,  1797,  1798,  937,   1799,  1800,  1637,  1801,  1802,  1803,  1128,  1804,  1805,  1805,  1806,
    1807,  1808,  1809,  1810,  1811,  1812,  1813,  1770,  1814,  1815,  1816,  1817,  1818,  1819,  0,     0,
    1821,  1277,  1822,  1823,  1824,  1825,  1287,  1290,  1779,  1826,  1318,  1827,  1753,  1828,  1829,  1830,
    1831,  1832,  1833,  1834,  1835,  1836,  1837,  1411,  1838,  1413,  1839,  1418,  1840,  1841,  1842,  1843,
    1844,  1755,  1458,  1459,  1845,  1846,  1487,  1148,  1847,  1160,  1787,  1171,  1788,  1848,  1187,  1849,
    1759,  1204,  1850,  1851,  1852,  1853,  1760,  1854,  1224,  1233,  1855,  1243,  1856,  1800,  1857,  1858,
    1637,  1859,  1128,  1860,  1861,  1862,  1863,  1864,  1808,  1865,  1769,  1866,  1809,  1585,  1867,  1810,
    1868,  1812,  7,     1869,  1870,  1871,  1872,  1814,  1764,  1873,  1815,  1874,  1816,  1875,  1505,  1876,
    1877,  1878,  1473,  1879,  1234,  1880,  1881,  1882,  1883,  1884,  0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     18291, 0,     18293,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     18298, 18300, 34686, 34689, 18308, 18310,
    18312, 18314, 18316, 18318, 18320, 18322, 18324, 0,     18326, 18328, 18330, 16997, 18334, 0,     18338, 0,
    17001, 19508, 0,     17023, 18346, 0,     18349, 18351, 18353, 18302, 18355, 18357, 18359, 18361, 18363, 0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17375, 0,     17377, 0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17381, 0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17447, 17449,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17452, 17454,
    33840, 33843, 33846, 33849, 33852, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     17474, 17476, 33862, 33865, 33868,
    33871, 0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1250,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,  1264,  1265,
    1266,  1267,  1268,  1269,  1270,  1271,  1272,  1273,  1274,  1275,  1276,  1277,  1278,  1279,  1280,  1281,
    1282,  1283,  1284,  1285,  1286,  1287,  1288,  1289,  1290,  1291,  1292,  1293,  1294,  1295,  1296,  1297,
    1298,  1299,  1299,  1299,  1300,  1301,  1302,  1303,  1304,  1305,  1306,  1307,  1308,  1309,  1310,  1311,
    1312,  1313,  1314,  1315,  1316,  1317,  1317,  1318,  1319,  1320,  1321,  1322,  1323,  1324,  1325,  1326,
    1327,  1328,  1329,  1330,  1331,  1332,  1333,  1334,  1335,  1336,  1337,  1338,  1339,  1340,  1341,  1342,
    1343,  1344,  1345,  1346,  1347,  1348,  1349,  1350,  1351,  1352,  1353,  1353,  1354,  1355,  1356,  1357,
    1358,  1359,  1360,  1361,  1362,  1363,  1364,  1365,  1366,  1367,  1368,  1369,  1370,  1371,  1372,  1373,
    1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,  1382,  1383,  1384,  1385,  1386,  1387,  1388,  1389,
    1390,  1391,  1391,  1152,  1392,  1392,  1393,  1394,  1395,  1396,  1397,  1398,  1399,  1400,  1401,  1402,
    1403,  1404,  1405,  1406,  1407,  1408,  1409,  1410,  1411,  1410,  1412,  1413,  1414,  1415,  1416,  1417,
    1418,  1419,  1420,  1421,  1422,  1423,  1424,  1425,  1426,  1427,  1428,  1429,  1430,  1431,  1432,  1433,
    1434,  1435,  1436,  1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,  1445,  1446,  1447,  1448,  1449,
    1450,  1451,  1452,  1453,  1454,  1455,  1456,  1457,  1458,  1459,  1460,  1461,  1462,  1463,  1464,  1465,
    1466,  1467,  1468,  1469,  1470,  1471,  1472,  1473,  1474,  1475,  1476,  1477,  1478,  1479,  1480,  1481,
    1482,  1483,  1484,  1485,  1486,  1487,  1488,  1489,  1490,  1491,  1492,  1493,  1494,  1495,  1496,  1497,
    1146,  1147,  1148,  1149,  1150,  1153,  1154,  1155,  1156,  1157,  1159,  1160,  1161,  1162,  1163,  1165,
    1166,  1167,  1168,  1169,  1171,  1172,  1173,  1174,  1175,  1177,  1178,  1179,  1180,  1182,  1184,  1185,
    1186,  1187,  1188,  1190,  1191,  1192,  1193,  1194,  1196,  1197,  1198,  1199,  1200,  1200,  1202,  1203,
    1204,  1205,  1207,  1208,  1209,  1210,  1211,  1213,  1214,  1215,  1216,  1217,  1219,  1220,  1221,  1223,
    1224,  1226,  1227,  1228,  1229,  1230,  1232,  1232,  1233,  1234,  1235,  1237,  1238,  1239,  1240,  1241,
    1243,  1244,  1245,  1246,  1247,  1249,  932,   933,   934,   937,   1113,  1119,  990,   1130,  1130,  1049,
    1062,  1181,  1067,  1087,  1088,  1089,  1106,  1107,  1108,  1109,  1110,  1111,  1112,  1114,  1115,  1116,
    1117,  1118,  1120,  1121,  1122,  1123,  1124,  1125,  1126,  1127,  1128,  1129,  1131,  1132,  1133,  1134,
    1135,  1136,  1137,  1138,  1139,  1140,  1141,  1142,  1143,  1144,  1145,  1152,  1158,  1164,  1170,  1176,
    1183,  1189,  1195,  1201,  1206,  1212,  1218,  1225,  1231,  1236,  1242,  1248,  1222,  774,   683,   1806,
    1996,  2024,  2046,  2053,  2060,  2006,  2001,  2404,  5,     705,   792,   829,   584,   1752,  662,   700,
    1768,  1772,  785,   345,   1548,  1895,  1912,  1964,  1984,  1990,  1997,  1862,  2009,  1820,  2018,  2025,
    2030,  2034,  2038,  2044,  2047,  2048,  2050,  2051,  2052,  2054,  2055,  2056,  2058,  2059,  2061,  1885,
    1867,  1868,  1886,  1887,  1888,  1889,  1890,  1898,  1903,  1906,  2057,  1911,  1913,  2049,  2026,  7,
    3,     4,     6,     1981,  1982,  1983,  1985,  1986,  1987,  1988,  1989,  1991,  1992,  1993,  1994,  1995,
    1998,  1999,  2000,  2002,  2003,  2004,  2005,  593,   2007,  2008,  2010,  2011,  2012,  2013,  1874,  1874,
    2014,  2015,  2016,  2017,  2019,  2020,  2021,  2022,  2023,  1151,  1875,  2027,  2028,  2029,  1751,  2031,
    2032,  1754,  2033,  1756,  1757,  2035,  2036,  2037,  2039,  2040,  2041,  2042,  2043,  2045};

int32_t decomp_idx(int32_t codepoint)
{
    if (codepoint >= 195102) return 0;
    return decomp_idx_t2[(decomp_idx_t1[codepoint >> 6] << 6) + (codepoint & 63)];
}
static const uint8_t comp_idx_t1[] = {
    0,  1,  2,  3,  0,  4,  5,  6,  7,  0,  8,  9,  0,  10, 0,  11, 0,  12, 0,  0,  13, 0,  0, 0, 0,  0, 0,  0,  14, 15,
    16, 0,  17, 18, 19, 20, 0,  0,  21, 22, 0,  0,  0,  0,  0,  0,  0,  0,  0,  23, 24, 0,  0, 0, 25, 0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  26, 0,  0,  0,  0,  27, 0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    28, 0,  29, 0,  30, 0,  0,  0,  31, 0,  0,  32, 33, 0,  0,  0,  34, 0,  0,  0,  35, 0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  36, 37, 38, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  39, 40, 41, 0,  42, 43, 0,  44, 45, 46, 47, 0,  48, 49, 50, 0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  51, 0,
    52, 0,  53, 54, 55, 56, 57, 58, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 59, 60, 61, 62,
    63, 64, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0, 0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  65, 66, 0, 0, 0,  67};

static const uint16_t comp_idx_t2[] = {
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   2,   3,   0,   0,   4,   20,  23,  28,
    34,  502, 52,  59,  66,  81,  82,  87,  517, 94,  103, 119, 0,   122, 130, 137, 144, 163, 165, 171, 173, 182, 0,
    0,   0,   0,   0,   0,   191, 207, 210, 215, 221, 701, 239, 246, 254, 268, 270, 275, 281, 284, 293, 309, 0,   571,
    313, 320, 328, 347, 349, 585, 358, 368, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   381, 0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   396, 0,   400, 401, 753, 403, 0,   0,   405, 0,   0,   0,   0,   762, 0,   0,   0,   0,   413, 765, 419, 0,
    768, 0,   0,   0,   424, 0,   0,   0,   0,   0,   428, 0,   432, 433, 434, 436, 0,   0,   437, 0,   0,   0,   0,
    441, 0,   0,   0,   0,   445, 449, 452, 0,   453, 0,   0,   0,   454, 0,   0,   0,   0,   0,   459, 463, 0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   467, 469, 0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   476, 478, 0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   480, 481, 0,   0,   0,   0,   482, 483, 0,   0,   0,   0,   0,   0,   484, 485, 486,
    487, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   488, 492, 497,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   503, 508, 0,   0,   0,   0,   0,   0,   513, 0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   524, 525, 0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   534,
    535, 536, 537, 0,   0,   0,   0,   538, 539, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   564, 0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   601, 0,   0,   0,   609, 0,   613, 0,   618, 0,   0,   0,   0,   0,   625, 0,   629, 0,
    0,   0,   630, 0,   0,   0,   636, 0,   0,   641, 0,   642, 0,   0,   643, 0,   0,   0,   651, 0,   655, 0,   661,
    0,   0,   0,   0,   0,   669, 0,   673, 0,   0,   0,   675, 0,   0,   0,   686, 692, 695, 0,   0,   698, 0,   0,
    0,   699, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   702, 0,
    0,   0,   0,   0,   0,   0,   0,   0,   703, 0,   0,   705, 0,   706, 709, 711, 712, 0,   716, 0,   0,   0,   717,
    0,   0,   0,   0,   718, 0,   0,   0,   722, 0,   0,   0,   723, 0,   724, 0,   0,   725, 0,   0,   727, 0,   728,
    731, 733, 734, 0,   738, 0,   0,   0,   739, 0,   0,   0,   0,   740, 0,   0,   0,   745, 0,   0,   0,   746, 0,
    747, 0,   0,   0,   0,   0,   0,   0,   0,   748, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   749, 750, 0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   760, 761, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   763,
    764, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   777, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   782, 0,   783, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   795, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   798, 0,   0,   799, 0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   471, 0,   0,   0,   0,   0,   0,   0,   472, 0,   0,
    475, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   515, 0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   598, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   608, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    683, 685, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   744, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   755, 0,   0,
    0,   0,   0,   0,   756, 0,   0,   0,   759, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   769, 771, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   773, 0,   0,   776, 0,
    0,   0,   0,   0,   0,   0,   0,   587, 0,   588, 0,   589, 0,   590, 0,   591, 0,   0,   0,   592, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   593, 0,   594, 0,   595, 596, 0,   0,   597,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   780, 781, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   784, 785, 0,   0,   0,
    0,   0,   0,   787, 788, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   789, 791, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   793, 794, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   796, 797, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   800, 804, 808, 809, 810, 811, 812, 813, 814, 818, 822, 823, 824, 825, 826, 827, 828, 830,
    0,   0,   0,   0,   0,   0,   832, 834, 0,   0,   0,   0,   0,   0,   836, 840, 844, 845, 846, 847, 848, 849, 850,
    854, 858, 859, 860, 861, 862, 863, 864, 867, 0,   0,   0,   0,   0,   0,   870, 873, 0,   0,   0,   0,   0,   0,
    876, 878, 0,   0,   0,   0,   0,   0,   880, 882, 0,   0,   0,   0,   0,   0,   884, 887, 0,   0,   0,   0,   0,
    0,   0,   890, 0,   0,   0,   0,   0,   0,   893, 897, 901, 902, 903, 904, 905, 906, 907, 911, 915, 916, 917, 751,
    919, 920, 921, 0,   0,   0,   922, 0,   0,   0,   0,   0,   0,   0,   923, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   924, 0,   0,   0,   0,   0,
    0,   0,   0,   925, 0,   0,   0,   0,   0,   0,   928, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   929, 0,   0,   0,   0,   0,   0,   0,   930, 0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   489, 0,   490, 0,   491, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   520, 0,   521, 0,   522, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   528, 0,   0,
    0,   0,   529, 0,   0,   786, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   532, 0,   533, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   540, 0,   0,   0,   0,   0,   0,   541, 0,   542, 0,   0,   544, 0,   0,
    0,   0,   545, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   547,
    0,   0,   548, 549, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   551, 552, 0,   0,   553, 554, 0,
    0,   555, 556, 557, 558, 0,   0,   0,   0,   559, 560, 0,   0,   561, 562, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   563, 918, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   567, 0,   0,   0,   0,
    0,   568, 569, 0,   570, 0,   0,   0,   0,   0,   0,   579, 580, 581, 582, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   51,  0,   0,   0,   0,   514, 0,   93,  0,   523, 0,   121, 0,   526, 0,
    527, 0,   530, 0,   531, 0,   188, 0,   189, 0,   190, 0,   543, 0,   0,   546, 0,   238, 0,   550, 0,   0,   0,
    0,   0,   0,   565, 0,   0,   311, 0,   0,   583, 0,   0,   356, 0,   0,   374, 0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   378, 0,   0,   0,   0,   0,   0,   0,   0,   380, 0,   0,   0,   0,   384, 0,   385, 0,   386, 0,
    387, 0,   388, 0,   389, 0,   390, 0,   391, 0,   392, 0,   393, 0,   394, 0,   395, 0,   0,   752, 0,   402, 0,
    404, 0,   0,   0,   0,   0,   0,   409, 0,   0,   411, 0,   0,   417, 0,   0,   420, 0,   0,   422, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   772, 442, 443, 444, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   458, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   376, 0,   377, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   379, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   473,
    474};

int32_t comp_idx(int32_t codepoint)
{
    if (codepoint >= 69939) return 0;
    return comp_idx_t2[(comp_idx_t1[codepoint >> 5] << 5) + (codepoint & 31)];
}
static const uint8_t ccc_t1[] = {
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  0,  0,  0,  0,  3,  0,  0,  0,  4,  5,  6,  7,  0,  8,  9,
    10, 0,  11, 12, 13, 0,  14, 15, 16, 15, 17, 15, 17, 15, 17, 15, 17, 0,  17, 0,  18, 15, 17, 0,  17, 0,  19, 20, 21,
    22, 23, 24, 25, 26, 27, 28, 0,  29, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  30, 0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  31, 0,  0,  32, 0,  0,  33, 0,  34, 0,  0,  0,  35, 36, 0,  0,  37, 38, 39, 40, 41, 0,  0,  42,
    0,  0,  0,  43, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  44, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  45, 0,  46, 0,  47, 0,  0,  0,  0,  0,  0,  0,  0,  48, 0,  49, 0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  50, 51,
    52, 0,  0,  0,  0,  53, 0,  0,  54, 55, 56, 57, 58, 0,  0,  59, 60, 0,  0,  0,  61, 0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  62, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  63, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  64, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  65, 0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  53, 66, 0,  67, 0,  0,  58, 0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  68, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  69, 70, 0,  0,  71};

static const uint8_t ccc_t2[] = {
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 230,
    230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216,
    220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
    220, 1,   1,   1,   1,   1,   220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220,
    230, 230, 230, 220, 220, 0,   230, 230, 230, 220, 220, 220, 220, 230, 232, 220, 220, 230, 233, 234, 234, 233, 234,
    234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 230, 0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   220, 230, 230,
    230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220,
    230, 230, 222, 228, 230, 10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  19,  20,  21,  22,  0,   23,  0,   24,
    25,  0,   230, 220, 0,   18,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230, 230, 30,  31,  32,  0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   27,
    28,  29,  30,  31,  32,  33,  34,  230, 230, 220, 220, 230, 230, 230, 230, 230, 220, 230, 230, 220, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   35,  0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230, 0,   0,   230, 230, 230, 230, 220, 230, 0,   0,   230,
    230, 0,   220, 230, 230, 220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   36,  0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230,
    220, 230, 220, 230, 220, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230, 220, 230, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 0,   230, 230, 230, 230, 230, 230, 230, 230, 230, 0,
    230, 230, 230, 0,   230, 230, 230, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   220, 220, 220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 220, 230, 230, 220, 230, 230, 230, 220, 220,
    220, 27,  28,  29,  230, 230, 230, 220, 230, 230, 220, 220, 230, 230, 230, 230, 0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   7,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   9,   0,   0,   0,   230, 220, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,
    84,  91,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   103, 103, 9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   107, 107, 107, 107, 0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   118, 118, 0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   122, 122, 122, 122, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   220, 220, 0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   220, 0,   220, 0,   216, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   129, 130, 0,   132, 0,   0,   0,
    0,   0,   130, 130, 130, 130, 0,   0,   130, 0,   230, 230, 9,   0,   230, 230, 0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   7,   0,   9,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   228, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   222, 230, 220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230, 230, 0,   0,   220, 0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   7,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 220, 230, 230, 230, 230, 230, 230, 230,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   9,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   7,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   7,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 0,   1,   220, 220, 220, 220, 220,
    230, 230, 220, 220, 220, 220, 230, 0,   1,   1,   1,   1,   1,   1,   1,   0,   0,   0,   0,   220, 0,   0,   0,
    0,   0,   0,   230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 220, 230, 230, 230, 230, 230,
    230, 230, 220, 230, 230, 234, 214, 220, 202, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
    230, 230, 230, 230, 230, 230, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   233, 220, 230, 220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   230, 230, 1,   1,   230, 230, 230, 230, 1,   1,   1,   230, 230, 0,   0,   0,   0,   230, 0,   0,
    0,   1,   1,   230, 220, 230, 1,   1,   220, 220, 220, 220, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   230, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
    230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   218, 228, 232, 222, 224, 224, 0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   8,   8,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   230, 0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230, 230,
    230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   220, 220,
    220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   7,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   230, 0,   230, 230, 220, 0,   0,   230, 230, 0,   0,   0,   0,   0,   230, 230, 0,
    230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   26,  0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 230, 230, 230,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   220, 0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   220, 0,   230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   230, 1,   220, 0,   0,   0,   0,   9,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   9,   7,   0,   0,   0,   0,   0,   230, 230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   9,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   9,   7,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   216, 216, 1,   1,   1,   0,   0,   0,   226,
    216, 216, 216, 216, 216, 0,   0,   0,   0,   0,   0,   0,   0,   220, 220, 220, 220, 220, 220, 220, 220, 0,   0,
    230, 230, 230, 230, 230, 220, 220, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230, 230, 0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   230, 230, 230};

int32_t ccc(int32_t codepoint)
{
    if (codepoint >= 119365) return 0;
    return ccc_t2[(ccc_t1[codepoint >> 6] << 6) + (codepoint & 63)];
}
static const int32_t lowercase_offset_values[] = {
    0,     32,     1,      -199,   -121,   210,    206,    205,    79,     202,    203,  207,   211,   209,
    213,   214,    218,    217,    219,    2,      -97,    -56,    -130,   10795,  -163, 10792, -195,  69,
    71,    38,     37,     64,     63,     8,      -60,    -7,     80,     15,     48,   7264,  -7615, -8,
    -74,   -9,     -86,    -100,   -112,   -128,   -126,   -7517,  -8383,  -8262,  28,   16,    26,    -10743,
    -3814, -10727, -10780, -10749, -10783, -10782, -10815, -35332, -42280, -42308, 40};

static const uint8_t lowercase_offset_t1[] = {
    0, 1, 0,  2,  3,  4,  5,  6, 7, 8, 0, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 18, 19, 0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 20, 20, 21, 20, 22, 23, 24, 25,
    0, 0, 0,  0,  26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  29, 30, 0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  31, 32, 20, 33, 0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  34, 35, 0,  36, 37, 38, 0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  0,  0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0, 0, 0,  0,  0,  0,  39, 0,  0,  0,
    0, 0, 0,  0,  0,  0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  40};

static const uint8_t lowercase_offset_t2[] = {
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  3,  0,  2,  0,  2,  0,  2,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  4,  2,  0,  2,  0,  2,  0,
    0,  0,  5,  2,  0,  2,  0,  6,  2,  0,  7,  7,  2,  0,  0,  8,  9,  10, 2,  0,  7,  11, 0,  12, 13, 2,  0,  0,  0,
    12, 14, 0,  15, 2,  0,  2,  0,  2,  0,  16, 2,  0,  16, 0,  0,  2,  0,  16, 2,  0,  17, 17, 2,  0,  2,  0,  18, 2,
    0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  19, 2,  0,  19, 2,  0,  19, 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  19, 2,
    0,  2,  0,  20, 21, 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  22, 0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  23, 2,  0,  24, 25, 0,  0,  2,  0,  26, 27, 28, 2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  29, 0,  30, 30, 30, 0,  31, 0,  32, 32, 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  33, 0,  0,  0,  0,  0,
    0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  0,
    0,  0,  34, 0,  0,  2,  0,  35, 2,  0,  0,  22, 22, 22, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
    36, 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  37, 2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38, 38, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  39, 39, 39, 39, 39,
    39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
    39, 39, 39, 39, 0,  39, 0,  0,  0,  0,  0,  39, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  40, 0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  41, 41, 41, 41, 41,
    41, 41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  41, 41, 41, 41, 41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  41, 41,
    41, 41, 41, 41, 41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  41, 41, 41, 41, 41, 41, 41, 41, 0,  0,  0,  0,  0,  0,  0,
    0,  41, 41, 41, 41, 41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  41, 0,  41, 0,  41, 0,  41, 0,  0,  0,  0,
    0,  0,  0,  0,  41, 41, 41, 41, 41, 41, 41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  41, 41, 41, 41, 41, 41, 41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  41, 41, 41, 41, 41, 41,
    41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  41, 41, 41, 41, 41, 41, 41, 41, 0,  0,  0,  0,  0,  0,  0,  0,  41, 41, 42,
    42, 43, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  44, 44, 44, 44, 43, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    41, 41, 45, 45, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  41, 41, 46, 46, 35, 0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  47, 47, 48, 48, 43, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  49, 0,  0,  0,  50, 51, 0,  0,  0,
    0,  0,  0,  52, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  53, 53, 53, 53, 53, 53, 53, 53, 53,
    53, 53, 53, 53, 53, 53, 53, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  54, 54, 54, 54,
    54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
    38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
    38, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  55, 56, 57, 0,  0,  2,
    0,  2,  0,  2,  0,  58, 59, 60, 61, 0,  2,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  62, 62, 2,  0,  2,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  63, 2,  0,  2,  0,  2,  0,
    2,  0,  2,  0,  0,  0,  0,  2,  0,  64, 0,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
    0,  2,  0,  2,  0,  2,  0,  2,  0,  65, 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  0,  0,  0,  0,  0,  66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
    66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66};

int32_t lowercase_offset(int32_t codepoint)
{
    int offset_index;
    if (codepoint >= 66600) return 0;
    offset_index = lowercase_offset_t2[(lowercase_offset_t1[codepoint >> 6] << 6) + (codepoint & 63)];
    return lowercase_offset_values[offset_index];
}
